Нужно преобразовать ствол проекта в ветку при использовании CVS - PullRequest
1 голос
/ 25 мая 2009

Я конвертирую большой многопроектный CVS-репозиторий в Subversion, используя cvs2svn. Он работает очень хорошо, но есть несколько проектов CVS, которые действительно должны быть ветвями других проектов.

Используя файл опций, я могу указать, что ствол проекта 'ShouldBeBranch' должен быть помещен в '/ OtherProject / branch / ShouldBeBranch', но я не могу найти способ избежать создания каталогов Subversion для тегов и ветви проекта ShouldBeBranch (которые пусты, но все же созданы).

Единственный вариант, который я вижу в данный момент, - это удаление каталогов из Subversion после завершения конвертации, но мне было интересно, знает ли кто-нибудь, как это можно сделать в процессе конвертации? Я также посмотрел файл подсказок символов, но с 270 проектами указание проекта по номеру индекса выглядит слишком сложно!

Большое спасибо, David

Ответы [ 2 ]

2 голосов
/ 26 мая 2009

Предположительно, у вашего проекта "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'.*'),
        ],
    )
1 голос
/ 26 мая 2009

Исправления после импорта кажутся мне лучшей вещью. Если вы перемещаете проект \ ствол проекта в ветку \ что-то, Subversion будет просто отслеживать историю.

В этом сообщении в блоге описан способ переименования путей с использованием цикла дампа / загрузки. Этот способ изменит историю, так что, если вы посмотрите назад на историю файлов, может показаться, что они всегда были внутри ветви \ что-то.

Если бы вы вернулись к старой версии, вы бы ожидали, что будет в проекте \ trunk. Поэтому я не думаю, что это хорошая попытка изменить историю.

...