Как сделать внутренний svn:externals

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

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

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

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

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


person Marcus Stade    schedule 01.06.2009    source источник


Ответы (4)


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

person Lasse V. Karlsen    schedule 01.06.2009

В Subversion 1.5 добавлены относительные внешние элементы.

person Roger Lipscombe    schedule 01.06.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 (внешний URL-адрес) всегда будет указывать на TRUNK вашей схемы.

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

person Vladimir    schedule 01.06.2009
comment
да спасибо! просто помог мне напомнить кому-то еще, кто выполнял экстернирование в папку в том же репозитории, почему бы не сделать это :) - person ehambright; 22.01.2016

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

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

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

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

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

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

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

person bendin    schedule 01.06.2009