Как начать работать с svn:externals?

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

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

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

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

3 ответа

Решение

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

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

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

И последняя из них - специфическая для TortoiseSVN страница, посвященная импорту содержимого в хранилище (напрямую не связанному с svn:externals).

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

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

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

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

svn propedit svn:externals extras

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

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

Шаг 1

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

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

Шаг 3

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
Другие вопросы по тегам