2013-08-02 2 views
0

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

Вариант использования такой, у нас есть внешняя библиотека 1 и библиотека 2. Библиотека 1 может быть построена сама по себе (библиотеки C++), без библиотеки 2. Однако библиотека 2 должна быть встроена в исходное дерево библиотеки 1. Если выезд кода у нас есть дерево, как, например:

~/my_checkout/багажник/ехЬегп/Library1/library2

Теперь, выше, Library1 является внешней ссылкой на источник дерево. Библиотеке каталогов2 мы хотели бы быть внешней ссылкой на другое исходное дерево.

У нас есть проекты, которые не нуждаются в библиотеке2 (поскольку библиотека 2 довольно большая), поэтому мы не можем создать внешнюю ссылку внутри исходного дерева библиотеки 1. Кроме того, проекты, использующие библиотеку 1, долгое время производятся, поэтому они не желают менять там процедуры оформления, чтобы приспособиться к различиям в оплате (к сожалению).

Есть ли способ обойти это?

Спасибо.

+0

Безопасно предположить серверную структуру, как: '^/Проекты/Library1 /', '^/Проекты/Library2 /' и '^/Проекты/MainApp/'где' MainApp' имеет внешнюю к 'Library1' и другую внешнюю к' Library2'? –

+0

В значительной степени да - небольшой мод - это каталог extern, в котором они экстернализованы (^/Projects/MainApp/extern/[extern_to_Library1] и ^/Projects/MainApp/extern/[extern_to_Library2]). Другая разница (не то, что я думаю, что это имеет значение) - MainApp и LibraryX находятся в разных адресах репо (но LibraryX хранятся в одном и том же репо) – user626201

+0

Ваш вопрос немного вводит в заблуждение: '~/my_checkout/trunk/extern/library1/library2' подразумевает, что папка 'extern /' имеет внешнюю направленность на 'library1 /', которая сама имеет внешний указатель на 'library2 /' –

ответ

1

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

Итак, в Tortoise SVN вы можете добавить два внешних с разными, но вложенными путями в один и тот же корневой каталог. Я не делал этого с командной строкой, но это должно быть возможно.

После этого свойства:

externs$ svn propget svn:externals . 
http://test.example.com/project/library1/trunk library1 
http://test.example.com/project/library2/trunk library1/library2 
+1

Ударьте меня! Да, я думаю, что это путь.Второй внешний является необязательным: только те приложения, которые нуждаются в 'Library2', будут иметь этот внешний, и' Library2' будет успешно создан, потому что он находится в 'Library1'. –

Смежные вопросы