在源控制项目中使用源控制库

rjs*_*ing 7 version-control mercurial project-management

我有几个项目可以构建可重用的库.所有这些项目都受源头控制.

当我在项目中使用这些库时,我只需链接到本地​​驱动器上的相同ONE版本.但是,您可以想象,当我提交时,这会导致问题,并且不同的开发人员尝试克隆存储库.

在源代码管理下使用组件时的最佳做法是什么?我应该在"主项目"源代码控制中包含"库项目"吗?这会引起问题吗?

注意:库需要很多编译器指令,因此几乎不可能只编译静态版本并链接到它.另外,我还在并行开发它们.

Von*_*onC 5

您有两种主要的依赖关系:

  • 源依赖项(您需要在项目的源代码中包含来自另一个项目的源代码),
  • 二进制依赖项(您需要包含一组打包的文件,例如在共享库中找到的文件).

如果,当你说"我在项目中使用这些库"时,你的意思是你需要二进制文件来编译你的项目,那么你可以将所述二进制文件存储在外部存储库中(即不是像Mercurial这样的(D)VCS,但一个神器库,如Nexus)

但是如果你的意思是你需要包含源代码,因为你在使用它们来开发你的项目时也会对这些库进行一些改进,那么Mercurial subrepos就更合适了.