Журнал команд CVS и rlog показывают идентификатор фиксации для отдельных ревизий файла.Мне неизвестна команда CVS, которая получает информацию с использованием этого идентификатора, но я могу подтвердить, что все файлы в одном коммите имеют один и тот же идентификатор.
У меня есть собственный анализатор файлов журнала, который использует коммит-id, чтобы сгруппировать файлы, затронутые одним коммитом (например, история изменений сортируется по дате и группирует файлы в один коммит).
Прочитав вашу ссылку, вы, вероятно, можете указать что-то вроде "log -r @commit-id ", чтобы получить список затронутых файлов с идентификатором коммита.Вероятно, есть и другие настройки командной строки, но следующее дает некоторый успех (слегка шумно):
c:\> cvs -q log -N "-r @fd049d34574117b"
=============================================================================
RCS file: /folder/file.xml,v
Working file: folder/file.xml
head: 1.3
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 4; selected revisions: 1
description:
=============================================================================
RCS file: /folder/file2.xml,v
Working file: /folder/file2.xml
head: 1.2
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 2; selected revisions: 0
description:
=============================================================================
Обратите внимание, что первый файл содержит «выбранные ревизии: 1», что означает, что фиксация соответствует версиифайл.
- Возможно, вы могли бы использовать регулярное выражение, чтобы отфильтровать записи "выбранные ревизии: 0" (многострочный регистр, разделенный последовательностью "============== ")
- Затем извлеките только записи" рабочего файла "результата, чтобы получить список файлов.
Если вы не хотите создавать свои собственные инструменты, попробуйтеищу "cvs changeset":