2011-02-14 100 views
0

我正在研究一个puppet清单,以从CVS存储库部署我们的代码。我见到目前为止如下:工作副本的CVS返回状态修订版

define codedeploy::cvs ($module, $tag, $copydir) { 

    file { "$copydir": 
     owner => www-data, 
     group => www-data, 
     mode => 755, 
     ensure => directory 
    } 

    #bypass cvs login, we'll just inject a ~/.cvspass file 
     # to do 

    #initial cvs checkout 
    exec { "cvscheckout-$name": 
     command => "cvs co -r $tag -d $name $module", 
     creates => "$copydir/$name/CVS", 
     require => [Package[cvs], File["$copydir"]], 
     environment => "CVSROOT=:pserver:[email protected]:/cvs/repository", 
     cwd => "$copydir" 
    } 

    #cvs update to tag 
    exec { "cvsupdate-$name": 
     command => "cvs up -r $tag", 
     require => [Package[cvs], File["$copydir"], Exec["cvscheckout-$name"] ], 
     environment => "CVSROOT=:pserver:[email protected]:/cvs/repository", 
     cwd => "$copydir/$name", 
     unless => #NEED TO FIGURE THIS PART OUT! 
    } 
} 

,我不知道是我怎么能返回工作拷贝的修订状态,这样才不会打电话CVS更新每个木偶运行的一部分。 cvs是否有一个命令来返回整个工作树的当前标签或版本ID?当我做一个cvs差异时,它似乎知道它应该区分该标签下的所有文件,但是我不确定在检出后如何才能返回工作副本的标签ID。

谢谢!

回答

0

我猜想,你可以使用cvs status看到,如果你需要检查的任何变化。

然而,什么是在刚刚运行的每一次cvs up危害?我有cron工作每小时或每天都做同样的事情,我认为这不是一个问题。如果你的codebase是巨大的,我想这是一个原因:)

相关问题