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