Управление большими внешними зависимостями с помощью Mercurial - PullRequest
3 голосов
/ 05 июня 2011

Я работаю над проектом, который использует несколько больших сторонних библиотек, таких как boost, tbb и ACE.Я хотел бы точно контролировать, какие версии этих сторонних библиотек используются в моем проекте, а не полагаться на то, что доступно на сборочной машине.Я делал подобные вещи в прошлом, добавляя эти библиотеки в репозиторий своих проектов.Это работает нормально, но замедляет работу Mercurial, заставляя его отслеживать на пару порядков больше файлов, чем содержится в моем проекте.Есть ли лучший способ управления внешними зависимостями?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 05 июня 2011

Если вы можете найти репозитории Mercurial, git или svn для этих библиотек, вы можете сделать их подкаталогами вашего проекта.Подразделения не указывают на репо в целом, а скорее указывают на конкретную версию специального репо, поэтому она соответствует вашей цели в этом.

1 голос
/ 05 июня 2011

Для больших бинарных зависимостей я бы рекомендовал экстернализировать их в хранилище артефактов, вне какой-либо VCS (особенно в распределенной VCS, где вы клонируете вокруг огромного хранилища из-за версионных двоичных файлов).).

В Java есть Nexus, C ++ / C # может публиковать артефакт в репозитории NuGet .
Это было бы предпочтительнее, чем пытаться хранить все вРепозиторий DVCS (Mercurial или Git).

...