Нужно преобразовать ствол проекта в ветку при использовании 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. Поэтому я не думаю, что это хорошая вещь, чтобы попытаться изменить историю.

Другие вопросы по тегам