Лучший способ убедиться, что развернута правильная версия файла?

Компания, в которой я работаю, пишет множество маленьких скриптов на Perl и Bash, чтобы преобразовать данные во что-то, что можно использовать для нашего программного обеспечения. Эти скрипты, как и любой код, могут меняться. Я предоставил им CVS из-за версии файла, а не версии репозитория. В любом случае, я обдумываю инструмент развертывания, чтобы передать сценарии от разработки к производству. Рабочий сервер будет иметь свою собственную простую систему управления версиями в том смысле, что, если сумма md5 одного из сценариев не совпадает с суммой в базе данных, он не будет запускать сценарий и отправлять по электронной почте соответствующие стороны.

Я хочу заставить программистов развернуть самую последнюю версию сценария CVS. Если это не самая последняя версия, она должна умереть с сообщением о том, что они должны сначала проверить свою версию. Я понимаю, что могут быть случаи, когда вам нужно развернуть старый файл. Это были бы исключения, и их можно было бы обрабатывать как таковые.

Что лучше всего сделать для этого? Это так же просто, как выполнить «cvs diff»?


person Chris Kloberdanz    schedule 03.11.2008    source источник


Ответы (2)


если вы собираетесь написать какой-то сценарий распространения, это должно быть относительно просто

1) Скрипт должен быть зафиксирован в вашем репозитории cvs

2) Я советую вызывать скрипт из вашего make-файла (или любой используемой вами системы сборки) примерно так

make dist

и правило dist вызовет ваш скрипт.
3) скрипт выполнит

 cvs up -An 

и проанализируйте вывод, чтобы найти статус M, C, A или R, например, перенаправив вывод в grep.

grep -c ^[MCAR] 

если count> 0, у вас проблема.

4) если один из найденных выше скриптов не работает

5) если нет, создайте tar или любую другую форму дистрибутива, которую вы используете

Чтобы развернуть более старую версию, вы можете сделать -A в качестве параметра, по умолчанию установленного на -A и переопределенного, например, переменной оболочки, например, -r tag-3.14.4 .

person Ilya    schedule 03.11.2008
comment
используйте '^[MARC]', чтобы предотвратить ложные срабатывания заглавных букв в именах файлов... - person dmckee --- ex-moderator kitten; 04.11.2008

Я работал над внутренним инструментом, который выполнял развертывание. Он был разработан для предприятия (и в соответствии с правилами SOX), поэтому для развертывания кода требовалось одобрение.

Из-за этого мы развернули версию кода, указанную разработчиком в запросе, а не последнюю версию. Причина в том, что разработчику может понадобиться внести изменения, протестировать, а в это время происходят другие изменения. Эти более новые изменения не прошли этапы тестирования (QA), но исходная версия разработчиков прошла, поэтому мы развернём эту версию.

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

person Brian Schmitt    schedule 03.11.2008