Переместить вложенный SVN-репозиторий

Мне нужно переместить SVN-репозиторий с одного сервера на другой в Windows. Хитрость заключается в том, что я хочу исключить все, кроме ствола, ветвей и тегов, из проекта во вложенном репозитории.

В настоящее время у меня есть один большой репозиторий, в котором находятся все проекты (MyBigRepo). Текущая структура:

/Repositories/MyBigRepo/MyProject1/trunk
/Repositories/MyBigRepo/MyProject1/branches
/Repositories/MyBigRepo/MyProject1/tags

/Repositories/MyBigRepo/MyProject2/trunk
/Repositories/MyBigRepo/MyProject2/branches
/Repositories/MyBigRepo/MyProject2/tags

/Repositories/MyBigRepo/MyProject3/trunk
/Repositories/MyBigRepo/MyProject3/branches
/Repositories/MyBigRepo/MyProject3/tags

Я только хочу переехать MyProject1, но я хочу исключить основную папку MyProject1 и просто переместите ствол, ветви и теги из MyProject1 репозиторий. Я не хочу двигаться MyProject2 или же MyProject3, Другими словами, моя цель - сформировать мой новый репозиторий, аналогичный приведенному ниже.

/Repositories/NewRepo/trunk
/Repositories/NewRepo/branches
/Repositories/NewRepo/tags

Вот командный файл, который я создал, чтобы сделать работу:

:: Create a dump of the old repo
svnadmin dump %OldRepoPath% > %MyBigRepoDumpFile%

:: Remove the other projects
svndumpfilter include "MyProject1" < %MyBigRepoDumpFile% > %MyProject1DumpFile%

:: Create a new repo
svnadmin create %NewRepoPath%

:: Load the dump into the new repo
svnadmin load %NewRepoPath% < %MyProject1DumpFile%

Моя проблема в том, что пакет все еще создает каталог MyProject1 под %NewRepoPath% как это:

/Repositories/NewRepo/MyProject1/trunk
/Repositories/NewRepo/MyProject1/branches
/Repositories/NewRepo/MyProject1/tags

Есть ли способ либо исключить дополнительный уровень (MyProject1) из моего файла дампа, либо переместить его на уровень, сохраняя при этом историю?

2 ответа

Решение

Я думаю, что вам лучше всего переместить его "как есть" (при наличии дополнительного уровня), а затем переделать структуру с помощью svn copy в новом хранилище.

Существует также возможность настройки файла дампа, как описано здесь.

Вы можете запустить svndumpfilter дважды:

  1. Отфильтруйте путь "/Repositories/NewRepo/MyProject1/" (как вы уже сделали),
  2. Отфильтруйте "ствол", "ветви" и "теги".
Другие вопросы по тегам