Изменение URL-адреса хранилища SVN в свойстве externals - PullRequest
6 голосов
/ 10 февраля 2010

Я перемещаю свой репозиторий в новое место, но у меня есть папки с (тем же) URL-адресом репозитория, жестко запрограммированными в свойствах внешних файлов. например:
старый URL: https://OldLocation.Domain/svn/
новый URL: https://NewLocation.Domain/svn/

Как я могу изменить старый URL-адрес хранилища на новый? простое редактирование свойства не работает.

Ответы [ 2 ]

11 голосов
/ 10 февраля 2010

Вы должны использовать относительные внешние значения (доступно с версии SVN 1.5):

либо используйте "../" относительно текущего пути, либо

используйте "^ /" относительно корня вашего хранилища.

Возможно, вам также придется удалить (или удалить) текущее содержимое папки с внешним, чтобы обновление могло записывать данные на диск (помните: SVN не будет перезаписывать существующие файлы)

3 голосов
/ 10 февраля 2010

Если я правильно понял вашу ситуацию, свойства svn:externals указывают на URL в том же хранилище, что и каталог, в котором находятся свойства. То есть местоположение

https://OldLocation.Domain/svn/project/path/to/a/directory

имеет свойство svn:externals, указывающее на

https://OldLocation.Domain/svn/project/path/to/an/external/library

Если все ваши клиенты Subversion используют версию 1.5 или выше, вы можете заменить все эти внешние компоненты на

^/path/to/an/external/library

где ^ означает «корень проекта, в котором находится этот каталог».

Затем, когда вы переместите весь репозиторий на NewLocation.Domain, свойства svn:externals будут следовать и обращаться к NewLocation.Domain, и ваша проблема будет устранена.

Сказав все это, я думаю, что редактирование свойства должно работать (и вам все равно придется это сделать, чтобы преобразовать в формат ^), но вам может потребоваться выполнить некоторую комбинацию удаление локальной проверенной копии внешнего, обновление и фиксация для удовлетворения svn богов.

...