2010-06-06 5 views
2

Я хочу сохранить зависимости для моего проекта в нашем собственном репозитории, поэтому у нас есть совместимые библиотеки для всей команды. Например, я хочу, чтобы наш проект использовал библиотеки Boost. Я видел, как это делалось в прошлом с установкой зависимостей в папке «vendor» или «dependencies».Копирование внешнего хранилища Subversion для хранения зависимостей

Но я все еще хочу иметь возможность обновлять эти зависимости. Если в библиотеке появляется новая функция, и она нам нужна, я хочу просто обновить этот репозиторий в нашем собственном репозитории. Я не хочу переписывать его и снова ставить его под контроль версий. Я также хотел бы, чтобы у нас была возможность изменять зависимости, если требуется небольшое изменение, не останавливая нас от обновления библиотеки.

Я хочу иметь возможность делать что-то вроде 'svn cp', а затем иметь возможность «svn merge» в будущем. Я просто попробовал это с боковым сундуком, но я не смог получить историю с использованием «svn log» на копии, которую я сделал.

Как это сделать? Что обычно делается для крупных проектов с зависимостями?

ответ

0

Вы изучали SVK? Он создает распределенные функции, такие как те, о которых вы спрашиваете, поверх svn.

+0

Могу ли я использовать svk с существующим хранилищем svn? Если я использую svk для создания зеркала другого репозитория, могу ли я использовать svn для всего остального или мне нужно сказать всем, чтобы начать использовать svk? –

+0

Я фактически не использую 'svk' (я использую' git' и 'hg' в основном), но [эта статья] (http://svk.bestpractical.com/view/UsingSVKAsARepositoryMirroringSystem), похоже, охватывает прецедент вы описали (если я что-то не хватает). –

2

Вы также можете рассмотреть возможность использования свойства svn:externals в ваших каталогах или поставщиках или в каталоге third_party. Затем вы можете, например, установить свойство svn: externals в каталог зависимостей/повышения до http://transact.dl.sourceforge.net/project/boost/boost/1.43.0/boost_1_43_0.zip или аналогичный, и это будет автоматически загружено в ваш каталог зависимостей при выводе. Если вы хотите обновить библиотеку, просто измените свойство svn: externals.

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