Переместить вложенный 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 дважды:
- Отфильтруйте путь "/Repositories/NewRepo/MyProject1/" (как вы уже сделали),
- Отфильтруйте "ствол", "ветви" и "теги".