У меня есть устаревший CVS-репозиторий, который я хочу конвертировать с помощью cvs2svn.Я использовал cvs2svn, чтобы выполнить тестовое преобразование, и столкнулся с проблемой, которую я не знаю, как решить.
Проблема заключается в том, что только некоторые каталоги в репозитории CVS разветвлены.Некоторые общие каталоги (включая корневой каталог проекта и Makefile) всегда остаются в HEAD.Это выглядит примерно так:
project/Makefile # always on HEAD
project/bar/ # HEAD, Release_01, Release_02, etc
project/config/ # always on HEAD
project/foo/ # HEAD, Release_01, Release_02, etc
project/Makerules/ # always on HEAD
project/Makerules/Release_01 # always on HEAD, defines branches for Release_01 among other things
project/Makerules/Release_02 # always on HEAD, defines branches for Release_02 among other things
Когда я запускаю преобразование cvs2svn, я получаю все нужные ветки, но общие файлы "всегда на голове" отсутствуют.Вместо этого эти файлы должны присутствовать с содержимым, которое они имели в HEAD во время фиксации ветвления.
Я не уверен, помогает ли это или нет, но официальные сборки делаются на любом теге ветки для всех файловиспользуется в сборке с монотонно увеличивающимся номером сборки (то есть build_123 - это тег, который включает в себя набор файлов из HEAD, а build_124 - это сборка Release_01, которая включает в себя смесь файлов из HEAD и ветви Release_01, а build_125 возвращаетсяко всем файлам HEAD).
Я конвертирую в git, но проблема должна относиться к любому выходному репозиторию.Если есть решение, которое работает только при конвертации в svn, я могу выполнить двухэтапное конвертирование.
Я вижу три возможных подхода к этому:
- некоторые комбинации опцийи / или пользовательский код для шага cvs2svn, чтобы заполнить каждую ветвь, отличную от HEAD, файлами, существовавшими в HEAD во время ревизии
- , своего рода постобработка вывода cvs2svn перед импортом в git
- используйте git-filter-branch для перезаписи истории git после импорта в git
Не хватает простого решения?Должен ли я просто принять несовершенный импорт и двигаться дальше?Сейчас есть только одна активная ветвь (кроме HEAD), но было бы полезно иметь полную и точную историю, чтобы ссылаться на нее.