如何管理外部和内部库的依赖项版本?

时间:2016-08-17 08:41:36

标签: c++ version-control dependencies dependency-management

我们正在开发一个C ++项目,内部模块化为单独的存储库。 这个项目还依赖于外部依赖:一些开源(我们为其构建二进制文件)和一些关闭(我们为此获取预构建的二进制文件)。

在发布新的提交供其他人使用时,关键的方面不仅仅是列出依赖关系,而是能够指定依赖关系的预期版本:

  • 对于第三方库,它将是版本号(可能会应用补丁)
  • 对于内部依赖项,理想情况下,它应该是提交ID或标记。

我们正在寻找一种现有工具(或方法)来管理依赖关系及其版本,理想情况下解决内部和第三方依赖关系。

理想情况下,此解决方案的结构使其可供开发人员和自动化流程使用(想到持续集成,确保实际构建集成分支的推送)。

1 个答案:

答案 0 :(得分:1)

源依赖关系的常见解决方案是使用源控件依赖的 git子模块 svn:external mercurial子存储库

根据我的经验,使用Team Foundation Server无法做到这一点。 对于二进制文件,我曾经在Makefile中有一个自定义目标来从共享文件夹或其他任何东西中复制依赖项。

可以像在本地开发机器上那样轻松地从CI调用这些目标。