Если вы хотите переместить репозиторий и сохранить историю, вам, вероятно, понадобится доступ к файловой системе на обоих хостах. Самое простое решение, если ваш бэкэнд - FSFS (по умолчанию в последних версиях), - это сделать копию файловой системы всей папки репозитория.
Если у вас есть серверная часть Berkley DB, если вы не знаете, что это за серверная часть, или если вы меняете номера версий SVN, вы захотите использовать svnadmin, чтобы сбросить старый репозиторий и загрузить его в новый. репозиторий. Использование svnadmin dumpдаст вам одну резервную копию файла, которую вы можете скопировать в новую систему. Затем вы можете создать новый (пустой) репозиторий и использовать его svnadmin load, который будет воспроизводить все коммиты вместе с его метаданными (автор, временная метка и т. Д.).
Вы можете узнать больше о процессе дампа / загрузки здесь:
http://svnbook.red-bean.com/en/1.8/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate
Кроме того, если вы это сделаете svnadmin load, убедитесь, что вы используете эту --force-uuidопцию, иначе у людей возникнут проблемы с переключением на новый репозиторий. Subversion использует UUID для внутренней идентификации репозитория и не позволяет вам переключить рабочую копию в другой репозиторий.
Если у вас нет доступа к файловой системе, могут быть другие сторонние варианты (или вы можете написать что-нибудь), которые помогут вам выполнить миграцию: по сути, вам придется использовать журнал svn для воспроизведения каждой ревизии в новом репозитории и затем исправьте метаданные после этого. Для этого вам понадобятся сценарии ловушек pre-revprop-change и post-revprop-change, что предполагает доступ к файловой системе, поэтому YMMV. Или, если вы не хотите сохранять историю, вы можете использовать свою рабочую копию для импорта в новый репозиторий. Но, надеюсь, это не так.
svnrdump dump https//remote/svn/trunk > repos.dump. В большинстве случаев команда работает и с SVN 1.6, но могут иметь некоторые проблемы, см. Документацию. Работает как в * nix, так и в Windows.