我们正在开发一个闭源项目,使用 Mercurial 进行版本控制。我们在项目中使用了两个库:
其中一个库是由第三方开发的。他们正在使用 git,我们通常每周从他们的仓库中提取一次以获取最新的更改。
另一个库是我们自己开发的,正在积极开发中。它必须存在于自己的公共 mercurial 存储库中,因为它是在 LGPL 下获得许可的。(它是第三方 LGPL 组件的一个分支,移植到我们的平台)
所以我的问题是:我应该如何组织来源以确保:
我们团队的开发人员应该能够使用单个“克隆”命令获取所有源代码(主项目 + 库)
我们应该能够轻松地从库中提取最新的更改,即使其中一个是由 git 管理的
我们应该使用 mercurial sub-repos 功能,使用 hg-git 来访问 git 下的库吗?TortoiseHg 和 BitBucket 是否很好地支持它?(优点:易于拉库更改/缺点:效果好吗?)
还是应该只保留项目下库的快照?(因此,当库中有新的上游更改时,我们将它们拉到一个单独的位置,然后将整个源代码复制到我们的项目中?(优点:会工作/缺点:很麻烦,特别是对于由我们自己开发,每天都会发生很多变化)