Сведения о вопросе

DED

23:59, 1st August, 2020

Теги

cvs    

Как узнать, какие теги CVS покрывают какие файлы и пути?

Просмотров: 403   Ответов: 6

Существует устаревший репозиторий CVS, который содержит большое количество каталогов, подкаталогов и путей. Существует также большое количество ветвей и тегов, которые необязательно охватывают все пути & файлов - обычно подмножество. Как я могу узнать, какая ветвь / тег покрывает, какие файлы и пути?

CVS log уже предоставляет список тегов для каждого файла. Задача требует, чтобы я транспонировал это в файлы по тегу. Я не смог найти такую функциональность в текущей реализации WinCVS (CVSNT). Учитывая обилие пустых циклов, я могу написать сценарий Perl, который сделает это, алгоритм не сложный, но его нужно сделать.

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



  Сведения об ответе

park

04:09, 4th August, 2020

Чтобы перечислить теги на файле можно также сделать:

cvs status -v <file>


  Сведения об ответе

screen

20:12, 6th August, 2020

Чтобы определить, какие теги применяются к конкретному файлу, используйте:

cvs log <filename>

Это выведет все версии файла и то, какие теги были применены к версии.

Чтобы определить, какие файлы включены в один тег, единственное, что я могу придумать, это проверить использование тега и посмотреть, какие файлы возвращаются. Команда для этого есть любая из:

cvs update -r <tagname>
cvs co <modulename> -r <tagname>
cvs export <modulename> -r <tagname>


  Сведения об ответе

VCe znayu

02:20, 8th August, 2020

метод, приведенный выше, не сработал для меня

cvs -м бэкап-ы -д 2000-01-01 -r yourTagName

однако после долгой возни я понял это

cvs -м бэкап-ы -д 2000-01-01 -r yourTagName ModuleName

завод


  Сведения об ответе

P_S_S

15:12, 3rd August, 2020

Вам не нужно делать настоящую проверку. Вы можете использовать параметр-n только для имитации этого:

cvs -n co -rTagName ModuleName

Это даст вам имена всех файлов, помеченных TagName в модуле ModuleName.


  Сведения об ответе

DINO

17:54, 4th August, 2020

Следующая команда дает список файлов, которые находятся в этом теге "yourTagName". Все файлы помечены как новые, информация о ревизии в "yourTagName".

Эта команда делает diff между 2000-01-01 и вашим тегом, Не стесняйтесь использовать другую дату, которая является более ранней.

cvs -q rdiff -s -D 2000-01-01 -r yourTagName


  Сведения об ответе

repe

05:47, 29th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться