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: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 команда для возврата текущего тега или идентификатора версии всего рабочего дерева? Когда я делаю cvs diff, кажется, что он знает, что он должен различать все файлы под этим тегом, однако я не уверен, как я могу просто вернуть идентификатор тега для моей рабочей копии после того, как я его проверил.

Спасибо!


person bobinabottle    schedule 14.02.2011    source источник


Ответы (1)


Я предполагаю, что вы можете использовать cvs status, чтобы узнать, нужно ли вам проверять какие-либо изменения.

Однако какой вред просто запускать cvs up каждый раз? У меня есть задания cron, которые делают одно и то же ежечасно или ежедневно, и я не думаю, что это большая проблема. Если ваша кодовая база огромна, я полагаю, это причина :)

person Bill Weiss    schedule 10.04.2011