ССВ:Список всех файлов, измененных между тегами (или датами)
-
02-07-2019 - |
Вопрос
Есть ли способ перечислить все файлы, которые были изменены между двумя тегами в CVS?
Каждый раз, когда мы выпускаем релиз, мы применяем тег ко всем файлам в этом релизе.Я хочу найти все файлы, которые изменились между выпусками.
Это также сработало бы, если бы я мог найти все файлы, которые изменились между двумя датами.
Решение
Я предполагаю, что эта команда поможет:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
где RELEASE_1_0
и RELEASE_1_1
это имена ваших тегов.
Вы можете найти немного больше информации о команде cvs diff. здесь
Кроме того, создать сценарий, который сделает отчет более подходящим для ваших нужд, должно быть довольно просто, например:количество измененных, созданных, удаленных файлов и т. д.Насколько мне известно, наиболее распространенные инструменты cvs с графическим интерфейсом (wincvs и черепаха) не предоставляют ничего подобного «из коробки».
Надеюсь, поможет ;)
Другие советы
Я предпочитаю использовать rdiff
и -s
вариант
cvs rdiff -s -r RELEASE_1_0 -r RELEASE_1_1 module > diffs
rdiff
не требует песочницы; -s
дает вам сводку изменений.
Чтобы получить список файлов между двумя датами с помощью CVS:
cvs diff -N -c -D YYYY-MM-DD -D YYYY-MM-DD | grep "Index:" > diff.out
Дополнительная информация о принятых датах для флага -D: http://docs.freebsd.org/info/cvs/cvs.info.Common_options.html
Чтобы получить список файлов, которые изменились между одной версией и другой, можно использовать стандартные команды cvs:
cvs -q log -NSR -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
Или, альтернативно, чтобы получить список комментариев к коммитам, просто отбросьте -R
:
cvs -q log -NS -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
Где вы замените V-1-0-69
и V-1-0-70
с ревизиями, которые вы сравниваете.
cvs log -d ">=DATE" -N -S -R > cvs.log
Метод Длиры дает много деталей, включая все изменения.
Чтобы просто получить список файлов, это работает:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs
Лучший инструмент, который я нашел для этого, — это Perl-скрипт под названием cvs2cl.pl.Это может создать список изменений в нескольких различных форматах.У него много разных опций, но я использовал такие опции, как тег-тег:
cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8
или
cvs2cl.pl --delta dev_release_1_2_3:HEAD
Я также проводил сравнения с использованием дат с помощью того же инструмента.