Ошибка svn switch - это не тот же репозиторий

Недавно я переместил сервер SVN, и теперь я tring, чтобы переместить рабочие копии с моего компьютера на новый сервер. Но я получаю странную ошибку. я делаю:

svn switch http://99.99.99.new/svn/company/project/trunk/web

но я получаю

svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'

переход сделан с дампом и импортом... и корень репо находится на http://99.99.99.new/svn/company/project

У вас есть идеи о том, что может быть неправильным? большое спасибо

Ответ 1

Попробуйте использовать

svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web

Как отмечено Sporino в комментариях, с Subversion 1.7 существует отдельная команда relocate:

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web

Ответ 2

Кроме того, в TortoiseSVN есть опция "Переместить", которую вы должны использовать в таких ситуациях (вместо опции "Switch" ).

Ответ 3

Мой лучший способ выполнить перенос SVN:

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
                      new_url_or_repository

Таким образом, используя правильный старый URL-адрес из команды svn info, вы обязательно не введете неправильный, который является одним из распространенных erros.

Если все правильно, вам будет предложено указать данные для нового местоположения, если они отличаются.

После выдачи команды не забудьте дважды проверить, что изменение было применено, глядя на параметр URL, выдавая

svn info

После перемещения, обновите рабочую копию, чтобы убедиться, что все в порядке:

svn update

Мой 2c..

Ответ 4

Используйте параметр командной строки relocate для команды switch.

документация svn switch

Иногда администратор может изменить "базовое расположение" вашего репозитория - другими словами, содержимое репозитория не изменяется, но основной URL-адрес, используемый для доступа к корню репозитория. Например, имя хоста может измениться или схема URL или, возможно, просто путь, ведущий к репозиторию. Вместо того, чтобы проверять новую рабочую копию, вы можете заставить команду svn switch "переписать" начало всех URL-адресов вашей рабочей копии. Используйте команду -relocate для выполнения замены. Содержимое файла не изменяется, и репозиторий не связан. Он похож на запуск perl script поверх вашей рабочей копии .svn/directories, которая запускает s/OldRoot/NewRoot/.

Ответ 5

Вам нужно использовать опцию --relocate:

svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web

см. svnbook для более подробной информации.