Как сделать внутренний SVN: внешние - PullRequest
11 голосов
/ 01 июня 2009

Я пытаюсь установить своего рода символическую ссылку в нашем хранилище subversion с помощью svn: externals, но на самом деле это работает не так хорошо. Что я хочу сделать, это связать папку в одной части того же хранилища с другой, например:

src /where_else / schema https://svn.acme.com/svn/project/trunk/src/schema

Это прекрасно работает для действительно внешних ресурсов (т. Е. Каталогов в другом репо), но я не могу заставить его работать для ресурсов в том же репо, как описано выше. Я уже некоторое время гуглил, и похоже, что это нужно поддерживать, что мне не хватает?

Мы используем Subversion 1.5.5 под VisualSVN при установке сервера Windows 2003.


EDIT:

Я забыл упомянуть, что я не получаю никаких ошибок, папка, которая должна получать содержимое из другой папки, просто остается пустой.

Ответы [ 4 ]

11 голосов
/ 01 июня 2009

Добавлена ​​Subversion 1.5 Относительно внешнего .

3 голосов
/ 01 июня 2009

Попробуйте выполнить «Обновление до определенной ревизии» и укажите «Полностью рекурсивный». Если ваша рабочая копия находится в режиме «Только рабочая копия», она не будет получать внешнее содержимое.

3 голосов
/ 01 июня 2009

Не думаю, что это ваша настоящая проблема, но я определяю свойства непосредственно в папке. В вашем случае я создаю папку src\somewhere_else и добавляю свойство:

schema https://svn.acme.com/svn/project/trunk/src/schema

Просто немного помнить, если вы определяете абсолютный внешний URL, как вы предлагаете:

src/somewhere_else/schema https://svn.acme.com/svn/project/trunk/src/schema

они не изменятся автоматически, если вы создадите TAG или BRANCH. Это означает, что одна часть TAG (внешний URL) всегда будет указывать на TRUNK вашей схемы.

Конечно, хорошо, если схема не слишком сильно меняется, но это может стать проблемой в будущем, когда у вас есть 2-летнее приложение для исправления, и схема была широко изменена.

1 голос
/ 01 июня 2009

Синтаксис, который вы даете:

working-copy-relative-path    full-repo-url

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

Альтернатива, представленная 1.5, - это относительные внешние:

рабочий-репо-или-относительный путь-рабочий-копия-относительный-путь

См. Ссылку Роджера Липскомба для получения дополнительной информации.

Тем не менее, то, что вы описываете должно работать. Если это не работает, то вы не должны описывать, что вы на самом деле делаете достаточно точно. Некоторые детали все еще отсутствуют.

...