Нужно преобразовать ствол проекта в ветку при использовании CVS
Я конвертирую большой многопроектный CVS-репозиторий в Subversion, используя cvs2svn. Это работает очень хорошо, но есть несколько проектов CVS, которые действительно должны быть ветвями других проектов.
Используя файл опций, я могу указать, что ствол проекта 'ShouldBeBranch' должен быть помещен в '/OtherProject/branch /ShouldBeBranch', но я не могу найти способ избежать создания каталогов Subversion для тегов и ветвей проект ShouldBeBranch (который пуст, но все еще создан).
Единственный вариант, который я вижу в данный момент, - это удаление каталогов из Subversion после завершения конвертации, но мне было интересно, знает ли кто-нибудь, как это можно сделать в процессе конвертации? Я также посмотрел на файл подсказок символов, но с 270 проектами указание проекта по номеру индекса выглядит слишком сложно!
Большое спасибо, Дэвид
2 ответа
Предположительно, у вашего проекта "ShouldBeBranch" есть ветки и теги. Где вы хотите, чтобы те в конечном итоге?
Если вы хотите, чтобы в преобразование был включен только транк проекта "ShouldBeBranch":
- исключить все другие символы из проекта "ShouldBeBranch"
- установите его trunk_path на путь в другом проекте
- установите значение "ветвь_пути" и "тэги_путь" в файле опций "Нет" (это препятствует их созданию)
Таким образом, часть вашего файла опций, которая добавляет проект "ShouldBeBranch", будет содержать такие строки:
run_options.add_project(
# ...
trunk_path='OtherProject/branches/ShouldBeBranch',
branches_path=None,
tags_path=None,
# ...
symbol_strategy_rules=[
ExcludeRegexpStrategyRule(r'.*'),
],
)
Делать исправления после импорта кажется мне лучшей вещью. Если вы перемещаете проект \ ствол проекта в ветку \ что-то, Subversion будет просто отслеживать историю.
В этом блоге описан способ переименования путей с использованием цикла дампа / загрузки. Этот способ изменит историю, так что, если вы посмотрите назад на историю файлов, может показаться, что они всегда были внутри ветви \ что-то.
Если вы вернетесь к старой версии, вы ожидаете, что она будет в проекте \ trunk. Поэтому я не думаю, что это хорошая вещь, чтобы попытаться изменить историю.