Репозиторий изменения в SVN URL-адрес



моя текущая структура SVN:



Path: .
URL: svn://someaddress.com.tr/project
Repository Root: svn://someaddress.com.tr
Repository UUID: -------------------------------------
Revision: 10297
Node Kind: directory
Schedule: normal
Last Changed Author: ----
Last Changed Rev: 9812
Last Changed Date: 2010-12-20 17:38:48 +0100 (Mon, 20 Dec 2010)


но наш проект (следовательно, служба SVN) будет работать над sub.someaddress.com.tr вместо someaddress.com.tr (someaddress.com.tr будет перенаправлен в другое место в ближайшее время).



так как это сервер разработки, я не мог быть уверен, что делать. Мне нужно будет использовать svn switch или svn switch --relocate? Кроме того, мне нужно будет переключить SVN root someaddress.com.tr или ветвь проекта someaddress.com.tr/project?

671   4  

4 ответов:

учитывая, что сервер Apache Subversion будет перемещен на этот новый DNS-псевдоним:sub.someaddress.com.tr:

  • С Subversion 1.7 или выше, используйте svn relocate. Перемещение используется при изменении местоположения сервера SVN. switch используется только в том случае, если вы хотите изменить свою локальную рабочую копию на другую ветвь или другой путь. При использовании TortoiseSVN, вы можете следовать инструкциям из TortoiseSVN Руководство. При использовании интерфейса командной строки SVN, см.этот раздел документации SVN. Команда должна выглядеть так:

    svn relocate svn://sub.someaddress.com.tr/project

  • сохранить с помощью /project учитывая, что фактическое содержимое вашего хранилища, вероятно, не изменится.

Примечание: svn relocate не доступен до версии 1.7 (спасибо ColinM за информацию). В старых версиях вы бы использовали:

    svn switch --relocate OLD NEW

в моем случае (а также svn switch --relocate) по какой-то причине не удалось (возможно, РЕПО было перемещено неправильно или что-то еще). Я столкнулся с этой ошибкой:

$ svn relocate NEW_SERVER
svn: E195009: The repository at 'NEW_SERVER' has uuid 'e7500204-160a-403c-b4b6-6bc4f25883ea', but the WC has '3a8c444c-5998-40fb-8cb3-409b74712e46'

Я не хочу заново скачать весь репозиторий, поэтому я нашел обходной путь. Это сработало в моем случае, но в целом я могу представить, что многие вещи могут быть сломаны (поэтому либо создайте резервную копию своей рабочей копии, либо будьте готовы повторно проверить все РЕПО, если что-то пойдет не так).

адрес РЕПО и его UUID и сохраняются в папке .svn/wc.db файл базы данных SQLite в вашей рабочей копии. Просто откройте базу данных (например, в браузере SQLite), просмотрите репозиторий таблиц и измените root и uuid значения столбцов для новых. Вы можете найти UUID нового РЕПО, выпустив svn info NEW_SERVER.

опять же, рассматривайте это как метод последнего средства.

захват URL до и после может дать вам некоторое спокойствие:

svn info | grep URL

  URL: svn://svnrepo.rz.mycompany.org/repos/trunk/DataPortal
  Relative URL: (...doesn't matter...)

и проверка на вашей версии (чтобы быть > 1.7), чтобы убедиться,svn relocate это правильная вещь, чтобы использовать:

svn --version

наконец, добавление к вышесказанному, если изменение url-адреса репозитория также включает изменение протокола, вам может потребоваться указать before и после url (кроме посмотреть здесь)

svn relocate svn://svnrepo.rz.mycompany.org/repos/trunk/DataPortal
    https://svngate.mycompany.org/svn/repos/trunk/DataPortal

все в одной строке курс.После этого, получите хорошее чувство, что все прошло гладко:

svn info | grep URL:

Если вам это нравится, немного больше уверенности в себе, новый URL РЕПО svn подключен и работает:

svn status --show-updates
svn diff

Если вы хотите совершить новое пустое РЕПО, вы можете проверить новое пустое РЕПО и совершить новое удаленное РЕПО.
chekout новое пустое РЕПО не удалит ваши локальные файлы.
попробуйте это: например, url удаленного РЕПО:https://example.com/SVNTest cd [YOUR PROJECT PATH] rm -rf .svn svn co https://example.com/SVNTest ../[YOUR PROJECT DIR NAME] svn add ./* svn ci -m"changed repo url"

Comments

    Ничего не найдено.