Tags cvs返回工作副本修订的状态

Tags cvs返回工作副本修订的状态,tags,cvs,puppet,Tags,Cvs,Puppet,我正在制作一个傀儡清单,以便从cvs存储库部署我们的代码。到目前为止,我有以下几点: define codedeploy::cvs ($module, $tag, $copydir) { file { "$copydir": owner => www-data, group => www-data, mode => 755, ensure => directory } #bypas

我正在制作一个傀儡清单,以便从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:robots@codeserver:/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:robots@codeserver:/cvs/repository",
        cwd => "$copydir/$name",
        unless => #NEED TO FIGURE THIS PART OUT!
    }
}
我不知道的部分是如何返回工作副本的修订状态,这样它就不会每次运行都调用cvs update。cvs是否有返回整个工作树的当前标记或修订id的命令?当我执行cvs diff时,它似乎知道它应该对该标记下的所有文件进行diff,但是我不确定如何在签出后返回工作副本的标记id


谢谢

我猜您可以使用cvs状态查看是否需要检查中的任何更改

但是,每次只运行cvs有什么害处?我的cron工作每小时或每天都做同样的事情,我认为这不是什么大问题。如果您的代码库是ginormous,我想这是一个原因: