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