Как начать работать с svn: externals? - PullRequest
76 голосов
/ 19 марта 2009

Я ищу краткое и хорошо написанное руководство по использованию svn: externals.

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

Что делать с несколькими проектами в зависимости от одного источника?

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

Ответы [ 3 ]

45 голосов
/ 19 марта 2009

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

Это это страница svnbook на svn: externals. Это самый полезный ресурс по теме.

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

И этот последний является специфической для TortoiseSVN страницей о том, как импортировать содержимое в репозиторий (не имеет прямого отношения к svn: externals).

18 голосов
/ 27 января 2012

Если по приведенным выше ссылкам неясно, каким образом вы устанавливаете свойство svn:externals, привязанное к определенной ревизии (закрепление), вот оно:

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

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

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

svn propedit svn:externals extras

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

0 голосов
/ 18 ноября 2016
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

каталог: / home / jack / repo2 / proj /

cd /home/jack

1013 * Step2 *

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

vim показывает:

.. / repo1 / proj / base / client proj / base / client

Шаг 5: добавить еще два файла

../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
...