CVS: список всех файлов, измененных между тегами (или датами)
Есть ли способ перечислить все файлы, которые были изменены между двумя тегами в CVS?
Каждый раз, когда мы делаем выпуск, мы применяем тег ко всем файлам в этой версии. Я хочу найти все файлы, которые были изменены между релизами.
Это также сработает, если я смогу найти все файлы, которые были изменены между двумя датами.
Ответы
Ответ 1
Я полагаю, эта команда помогла бы:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
где RELEASE_1_0
и RELEASE_1_1
- имена ваших тегов.
Вы можете найти немного больше информации о команде cvs diff здесь
плюс это должно быть довольно просто создать script, чтобы сделать отчет более подходящим для ваших нужд, например: количество файлов, измененных, созданных удаленных и т.д. Насколько мне известно, наиболее распространенные инструменты cvs GUI (wincvs and tortoise ) не предоставляют что-то подобное из коробки.
Надеюсь, что это поможет ;)
Ответ 2
Я предпочитаю использовать rdiff
и -s
вариант
cvs rdiff -s -r RELEASE_1_0 -r RELEASE_1_1 module > diffs
rdiff
не требуется песочница; -s
дает краткое изложение изменений.
Ответ 3
Чтобы получить список файлов между двумя датами с помощью 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
Ответ 4
Чтобы получить список файлов, которые были изменены между одной версией и другой с помощью стандартных команд 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
на ревизии, которые вы сравниваете.
Ответ 5
cvs log -d ">=DATE" -N -S -R > cvs.log
Ответ 6
Метод DLira дает много деталей, включая все изменения.
Чтобы просто получить список файлов, это работает:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs
Ответ 7
Лучший инструмент, который я нашел для этого, - это perl script, называемый cvs2cl.pl. Это может создать список изменений в нескольких разных форматах. У него много разных опций, но я использовал теги-теги, например:
cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8
или
cvs2cl.pl --delta dev_release_1_2_3:HEAD
Я также делал сравнения, используя даты с одним и тем же инструментом.