Пустые поля ключевых слов после перехода с CVS на GIT с использованием cvs2git - PullRequest
0 голосов
/ 24 февраля 2020

Я перемещаю множество репозиториев из CVS в GIT. Сначала я использовал cvs gitimport, но он не работал должным образом. cvs2 git работает (почти) нормально. К сожалению, есть одна проблема, которая работала в cvs gitimport и не работает в cvs2 git (и это важно для меня). После миграции с использованием cvs2 git поля, содержащие ключевые слова (в указанных c файлах), пусты:


$ Заголовок $

$ Редакция $

$ Автор $

$ Дата $

"имя файла" Редакция: 1.2


Я пробовал разные конфигурации: ctx.revision_collector, ctx.revision_reader, _keyword_handling, но эффект все тот же.

Основные команды, которые я использовал:

cvs2 git --blobfile = cvs2 git -tmp / $ {module} -tmp / git -blob.dat --dumpfile = cvs2 git -tmp / $ {module} -tmp / git - dump.dat --username =igrationuser --encoding = ascii --encoding = utf8 --encoding = cp1250 --encoding = iso8859_2 --fallback-encoding = ascii --retain-конфликтаting-atti c -файлов $ {module }

git --bare init "имя проекта" cd "имя проекта" cat ../../cvs2git-tmp/git-blob.dat ../../cvs2git -tmp / git -dump.dat | git быстрый импорт git ветка -D TAG.FIXUP git g c --prune = сейчас git repack -a -d -f

Кто-нибудь сумел решить такую ​​проблему? проблема? Заранее благодарю за ответ

1 Ответ

0 голосов
/ 25 февраля 2020

Я использую программу cvsconvert из cvs-fast-export

Она в основном расширяет ключевые слова, так как пользователь CVS ожидает их расширения (я не уверен, что это обрабатывает $CVSHeader$ или пользовательский LocalKeyword, определенный в CVSROOT/config, но я скоро это протестирую).

Как только вы конвертируете в Git, IFF вы хотите продолжать использовать пер. расширение ключевого слова для файла, тогда вы можете рассмотреть возможность использования Git $Format:$, которая включается путем установки атрибута export-subst для всех файлов, нуждающихся в таких расширениях, и создания ваших выпусков с помощью git -archive (1) . Обратите внимание, что они раскрываются только тогда, когда релиз создается с помощью git archive, но, как правило, именно тогда они в любом случае наиболее полезны.

Например, я заменяю свои старые вхождения $Id$ или $CVSHeader$ чем-то вроде следующее (адаптировано, где это необходимо, для другого комментария или синтаксиса строковой константы и, конечно, с фактическим именем проекта и путем к файлу):

#ident  "@(#)PROJECT:FILEPATH:$Format:%D:%ci:%cN:%h$"
...