Репозиторий изменения в 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?
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/SVNTestcd [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