Ошибка переключателя SVN - это не то же самое хранилище
Я недавно переместил сервер SVN, и теперь я пытаюсь переместить рабочие копии со своего компьютера на новый сервер. Но я получаю странную ошибку. я делаю:
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'
перемещение было выполнено с помощью dump и import... и корень репозитория находится на http://99.99.99.new/svn/company/project
Ребята, у вас есть идеи, что может быть не так? большое спасибо
5 ответов
Попробуйте использовать
svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
Как отметил Спорино в комментариях, начиная с 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
Кроме того, в TortoiseSVN есть опция "Переместить", которую следует использовать в подобных ситуациях (вместо опции "Переключение").
Мой лучший способ сделать перемещение SVN это:
svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
new_url_or_repository
Таким образом, используя правильный старый URL из svn info
Команда, вы обязательно не введете неправильный, который является одним из распространенных ошибок.
Если все правильно, вам будет предложено ввести данные аутентификации для нового местоположения, если они отличаются.
После выполнения команды обязательно дважды проверьте, что изменение было применено, посмотрев на параметр URL, выдав
svn info
После перемещения обновите свою рабочую копию, чтобы убедиться, что все в порядке:
svn update
Мой 2с..
Использовать relocate
параметр командной строки для switch
команда.
Иногда администратор может изменить "базовое местоположение" вашего хранилища - иными словами, содержимое хранилища не меняется, а основной URL-адрес, используемый для доступа к корню хранилища, меняется. Например, имя хоста может измениться, или схема URL, или, возможно, просто путь, ведущий к хранилищу. Вместо того, чтобы извлекать новую рабочую копию, вы можете заставить команду svn switch "перезаписать" начала всех URL-адресов в вашей рабочей копии. Используйте команду --relocate для выполнения замены. Содержимое файла не изменяется, и хранилище не связывается. Это похоже на выполнение сценария perl над вашей рабочей копией.svn/ directoryies, которая запускает s/OldRoot/NewRoot/.
Вам нужно использовать опцию --relocate:
svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web
см. svnbook для более подробной информации.