Могу ли я взять дамп SVN и переопределить каталог?

Я перемещаю SVN-провайдеров, и все мои репозитории начинаются как https://www.provider1.com/myrepo1 поэтому я сделал svn-дамп в этом репо, и в репо мои пути начинаются trunk/src, trunk/libи т. д. Однако мой новый провайдер дает мне только один URL-адрес, чтобы я мог добавить свои проекты в них. Поэтому мне нужно переименовать все каталоги в дампе, чтобы добавить нового родителя для каждого пути, чтобы он мог выглядеть myrepo1/trunk/src, myrepo1/trunk/libи т. д. Я понимаю, что могу создать новый каталог в каждом URL-хранилище и переместить в него папки. Но это не меняет историю этого. Так есть ли способ использовать svndumpfilter для непосредственного добавления этого родителя в файл дампа? Если нет, что мне делать?

2 ответа

Решение

Вот что я сделал, чтобы заставить его работать. Я не использовал svndumpfilter в конце концов. Вместо этого я создал новый репозиторий, используя svnadmin затем создал родительский каталог в этом вновь созданном SVN-репо. Затем загрузил дамп с помощью svnadmin load приказывая поместить этот дамп в новый родительский каталог.

Сначала разверните проект и создайте дамп этого проекта:

svnadmin create project1
emacs repo/hooks/pre-revprop-change
chmod 755 project1/hooks/pre-revprop-change
svnsync init file://$(pwd)/project1 https://somehost.com/svn/project1
svnsync sync file://$(pwd)/project1
svnadmin dump project1 > some.dump

Затем создайте новый проект svn, для которого мы загрузим дамп в новый родительский каталог:

svnadmin create someDirectory
svn mkdir -m "Add root directory to project" file://$(pwd)/someDirectory/THE_PARENT_NAME
cat some.dump | svnadmin load --parent-dir THE_PARENT_NAME someDirectory

В качестве альтернативы вы можете использовать svnkitfilter на основе SVNKit:

$ svnkitfilter OLD_ROOT_URL NEW_URL --prefix myrepo1
Другие вопросы по тегам