Перечислите все файлы, которые не редактировались в течение года в CVS - PullRequest
3 голосов
/ 08 мая 2009

Как мне получить список всех файлов, которые не были изменены в прошлом году в хранилище в CVS?

Ответы [ 4 ]

1 голос
/ 12 мая 2009

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

1 голос
/ 12 мая 2009

Мы можем легко сделать это, используя ViewVC (или ViewCVS, как он назывался ранее). Он создает базу данных SQL для всех файлов и их коммитов (с комментариями и авторами), которые вы можете легко запросить разными способами.

Вы можете загрузить его с http://www.viewvc.org/. Вам потребуется настроить сервер MySQL для хранения данных и доступа к каталогу физического репозитория на сервере CVS, чтобы импортировать существующие коммиты из репозитория через cvsdbadmin инструмент:

cvsdbadmin rebuild /var/lib/cvs

, где /var/lib/cvs - местоположение вашего хранилища. Информация о соединении с базой данных хранится в файле конфигурации ViewVC.

В зависимости от размера хранилища это может занять от нескольких секунд до нескольких часов. Как только он будет завершен, вы можете использовать обычные инструменты SQL-запросов, чтобы узнать все виды информации о ваших коммитах - мы используем ее для очень быстрой генерации журналов изменений. Используя скрипт CVS loginfo (также включенный в ViewVC), мы обновляем на лету базу данных, когда кто-то фиксирует файл в CVS.

Также может быть очень полезно, если вы что-то совершили случайно (см. в этом посте ); поскольку фиксации CVS не являются транзакционными, это может быть сложным для выяснения.

1 голос
/ 11 мая 2009

Единственный способ сделать это - получить список всех файлов, измененных за последний год (здесь я использую 2008-05-08 в качестве даты год назад):

cvs history -c -D2008-05-08

и сравнить со списком всех файлов, находящихся в данный момент в хранилище. Те, кто не входит в список, созданный cvs history, не были изменены в прошлом году.

0 голосов
/ 12 мая 2009

Вариант CVS diff для показа идентичных файлов (--report-идентичные-файлы) кажется неработоспособным, по крайней мере для меня Вы можете просто оформить заказ старой версии:

cvs co -D "1 year old" proj

И используйте старый добрый diff, чтобы найти идентичные файлы:

diff --recursive --report-identical-files --brief | grep identical
...