2011-02-14 60 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是巨大的,我想這是一個原因:)

相關問題