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

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

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

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

17.09.2008 19:10:13
С тех пор, как я опубликовал эти вопросы, мы перешли на SVN, что делает эту проблему тривиальной (наряду со многими другими преимуществами). Я очень рекомендую обновление!
John Sibly 27.10.2010 19:44:14
9 ОТВЕТОВ
РЕШЕНИЕ

Вау.

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

Во-первых, бег

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 в каталоге, который содержал поврежденные файлы, чтобы получить больше информации.

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

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

1
18.09.2008 11:13:59
Предполагая, что необязательный 'history' включен, в противном случае "cvs [сервер прерван]: ведение журнала истории не включено в этом хранилище"
Ray Hayes 9.06.2010 15:58:18

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

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

1
17.09.2008 19:14:11

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

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

2
17.09.2008 19:14:24

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

0
17.09.2008 19:17:42

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

Скрипт Cvs2Cl

Активный Perl

1
17.09.2008 19:23:11

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

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

1
17.10.2008 17:20:19

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

0
6.11.2008 10:03:20

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

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

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

0
6.11.2008 10:42:30

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

0
16.03.2009 16:12:06