2009-03-19 2 views
72

Я ищу краткий и хорошо написанный учебник по использованию svn: externals.Как начать работу с svn: externals?

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

What to do with multiple projects depending on the same source?

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

ответ

40

Вот некоторые разделы о нем в svnbook/TortoiseSVN руководство:

This страница svnbook на SVN: внешние. Это самый полезный ресурс по этому вопросу.

This one объясняет четыре способа включения подпроектов в рабочий процесс (и в процессе пропускает пятый: символические ссылки).

И this last one - это специальная страница TortoiseSVN о том, как импортировать материал в репозиторий (не имеющий прямого отношения к svn: externals).

16

В случае, если это не ясно из ссылки, представленные выше, как вы установите svn:externals свойство, привязанную к конкретной ревизии (скалывание), вот оно:

svn propset svn:externals "plugins -r12345 https://svn.example.com/common/plugins" extras 

Это будет сделает a plugins подкаталог под каталогом extras и связать его с ревизией 12345 внешнего URL-адреса SVN https://svn.example.com/common/plugins.

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

svn propedit svn:externals extras 

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

0
root/repo1/proj/base/common/log.c 
root/repo1/proj/base/common/log.h 
root/repo1/proj/base/client 

root/repo2/proj/test/base 

Как показывают выше, мы хотим скопировать 2 файла и 1 каталог в repo2

Step1

каталоге:/Главная/домкрат/repo2/проектируемый/

cd /home/jack 

Этап 2

svn propset svn:externals "../repo1/proj/base/client proj/base/client" repo2 

что-то вроде: ln repo1/proj/base/client repo2/proj/base/client

Step3

export SVN_EDITOR=vim 

Step4

svn propedit svn:externals repo2 

ВИМ показывает:

../repo1/proj/base/client проектируемый/база/клиент

Step5: добавить еще два файла

../repo1/proj/base/client proj/base/client 
../repo1/proj/base/common/log.c proj/base/common/log.c 
../repo1/proj/base/common/log.h proj/base/common/log.h 
Смежные вопросы