使用mercurial管理大型外部依赖项

时间:2011-06-04 20:01:18

标签: version-control mercurial

我正在开发一个项目,该项目利用了几个大型第三方库,如boost,tbb和ACE。我想确切地控制在我的项目中使用这些第三方库的哪些版本而不是依赖于构建机器中可用的任何版本。我过去通过将这些库添加到我的项目存储库中来完成此类操作。这样可以正常工作但它确实减慢了它的速度,迫使它跟踪比我的项目包含的文件多几个数量级的文件。是否有更好的方法来管理外部依赖?

提前致谢

2 个答案:

答案 0 :(得分:2)

如果您可以找到这些库的Mercurial,git或svn repos,您可以将它们设为项目的subrepositories。 Subrepos一般不指向回购,而是指向特定版本的特定回购,因此它符合您的目标。

答案 1 :(得分:1)

对于大型二进制依赖项,我建议将其外部化在工件库中,在任何VCS之外(特别是分布式 VCS,在那里克隆大型存储库,因为版本化的二进制文件)。

Java在publish an artifact中有Nexus,C ++ / C#可以NuGet repo 尝试将所有内容存储在DVCS仓库(Mercurial或Git)中是最好的。