Кто-нибудь знает параметры командной строки CVS, чтобы получить подробную информацию о последней регистрации?

StackOverflow https://stackoverflow.com/questions/86515

Вопрос

Я использую CVS в Windows (с интерфейсом WinCvs) и хотел бы добавлять сведения о последней регистрации в электронное письмо из нашего автоматизированного процесса сборки всякий раз, когда происходит сбой сборки, чтобы упростить ее исправление.

Мне нужно знать файлы, которые были изменены, пользователя, который их изменил, и комментарий.

Я пытался проработать параметры командной строки, но, похоже, никогда не получал точных результатов (либо получал слишком много результатов, а не только от одной проверки, либо подробности какой-то случайной проверки двухнедельной давности)

Это было полезно?

Решение

Ух ты.

Я и забыла, как это трудно сделать.То, что я делал раньше, было двухэтапным процессом.

Во-первых, запуск

cvs history -c -a -D "7 days ago" |
    gawk '{ print "$1 == \"" $6 "\" && $2 == \"" $8 "/" $7 "\" { print \"" $2 " " $3 " " $6 " " $5 " " $8 "/" $7 "\"; next }" }' > /tmp/$$.awk

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

Затем я просмотрел файл CVS / Entries в каталоге, который содержал поврежденные файлы, чтобы получить дополнительную информацию.

Объединение этих двух факторов позволило мне указать на виновника и отправить им электронное письмо с уведомлением о том, что они взломали сборку.

Извините, что этот ответ не такой полный, как я надеялся.

Другие советы

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

Тем не менее, есть способы, которыми вы могли бы достичь своей цели.Самым простым может быть добавление перехвата после фиксации для отправки электронной почты или входа в файл.Тогда, по крайней мере, вы сможете сгруппировать набор коммитов вместе, посмотрев на время отправки электронных писем и на то, кто внес изменения.

CVS не предоставляет такой возможности.Однако вы можете получить его, купив лицензию на Рыбий глаз или, возможно, с помощью CVSTrac (примечание:Я не пробовал CVS Trac).

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

Мы сделали это с помощью скрипта perl, который сбрасывает список изменений, и вы можете получить бесплатную версию perl для Windows по второй ссылке.

Скрипт Cvs2Cl

Активный Perl

Я использую loginfo в CVSROOT и записываю эту информацию в файл

http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_18.html#SEC186

Поможет ли "cvs history -a -l" сблизить вас?Показывает для всех пользователей последнее событие в проекте...

Поддержка CVSNT идентификаторы фиксации которые вы можете использовать вместо тегов в командах регистрации, оформления заказа или обновления.Каждый набор зафиксированных файлов (фиксации в CVSNT являются атомарными) получает свой собственный уникальный идентификатор.Вам просто нужно сначала определить commitid последнего зарегистрированного файла через cvs log (вы можете ограничить вывод через -d "1 час назад" или аналогичный), а затем запросить, какие другие файлы имеют этот идентификатор.

В Eclipse есть встроенные наборы изменений.Вы можете просмотреть последние изменения (по крайней мере, входящие изменения, иначе называемые обновлениями) с помощью commit.Он делает это путем группировки коммитов по автору, сообщению о фиксации и аналогичным временным меткам.

Это также работает для "Сравнить с / Другой веткой или версией", где вы можете выбрать ветки, теги и даты.Просмотрите значки просмотра синхронизации для всплывающего меню с надписью "Изменить наборы" и убедитесь в этом сами.

Редактировать:Для этого потребуется перейти на Eclipse, по крайней мере, в качестве средства просмотра, но в зависимости от частоты, которую вам нужно сравнить и сгруппировать, это может быть не так уж плохо.Если вы не хотите использовать больше - используйте Eclipse только для резюме.Должно быть возможно даже получить графический cvs-клиент приличного размера через rcp со всеми плагинами, но это определенно выходит за рамки...

Разве это не решаемая проблема?Я бы подумал, что любой из нескольких инструментов на Матрица CI который поддерживает как резюме, так и уведомления по электронной почте, может сделать это за вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top