Я новичок в SVN и интенсивно использую свойство externals. У меня есть репозиторий, расположенный на моем ПК, а внешние свойства содержат жестко запрограммированное «localhost» в имени, что теперь вызывает у меня проблемы. Например:
/project1/trunk
/shared/trunk
project1/trunk зависит от общей папки, поэтому имеет свойство svn:externalssvn: // локальный / общий / транк. Это отлично работает с TortoiseSVN, я могу проверить project1/trunk и получить копию shared/trunk.
Теперь я переместил репозиторий на другой сервер, и внешние ссылки больше не работают по очевидным причинам (TortoiseSVN пытается извлечь svn://localhost/shared/trunk, который больше не существует).
Поэтому мне нужно обновить все мои внешние данные - но я не хочу жестко кодировать имена машин - так как мне заставить это работать? Имейте в виду, что в какой-то момент репозиторий может снова переместиться. Покопавшись в руководствах по SVN, я наткнулся на синтаксис ^ /, поэтому попробовал следующее:
svn:externals shared ^/shared/trunk
Это было принято, но когда я пытаюсь проверить копию project1 на моем компьютере, я получаю следующую ошибку:
Unrecognized format for the relative external URL 'shared'.
Check the path and/or URL you've entered.
Если я не закодирую имя репозиторной машины во внешнем виде, я не смогу выполнить эту работу - это похоже на черное искусство, поэтому любые советы будут приветствоваться.





Синтаксис ^ /, на который вы ссылаетесь, является новым в SVN 1.5, поэтому вы можете использовать старую версию клиента и / или сервера, которая не понимает этот синтаксис. Кроме того, для поддержки нового синтаксиса внешних элементов в 1.5 они изменили порядок параметров в определении внешних элементов. Я думаю, вы хотите сначала указать путь, а затем имя папки, в которой он появится. Подробности в документы.