Могу ли я взять дамп 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