2010-06-13 50 views
3

我们正在开发一个闭源项目,使用Mercurial进行版本升级。我们在我们的项目中使用两个库:保存Mercurial项目下的第三方库:是否有子回购?

  • 其中一个库由第三方开发。他们正在使用git,而且我们通常只需在一周内从其回购站点获取最新更改。

  • 其他图书馆正在自行开发,正在积极开发中。它必须住在它自己的公共保险库中,因为它是根据LGPL许可的。 (这是一个第三方LGPL组件的一个分支,移植到我们的平台)

所以我的问题是:我应如何组织源,以确保:

  1. 从开发者的我们团队应该能够通过一个“克隆”命令获得所有源代码(主项目+库)

  2. 我们应该能够轻松地从库中获取最新更改,即使其中一个由git管理

我们应该使用mercurial sub-repos函数,用hg-git来访问git下的库吗? TortoiseHg和BitBucket是否支持它? (优点:容易拉库改变/缺点:它运作良好吗?)

或者我们应该只保留我们的项目下的库的快照? (因此,当图书馆发生新的上游变化时,我们将他们拉到一个单独的地方,然后将整个来源复制到我们的项目中?(专业人员:将工作/缺点:屁股疼痛,特别是对于图书馆这是由我们自己开发的,这是每天都有很大的变化)

回答

1

是的,使用hg-git的subrepo。它很容易,很好的支持和有效的你的.hgsubstate文件将包括指向subrepos快照,并且该文件是受控的,所以在任何时候你都可以回答这个问题:这个库X的版本是什么版本,这是很好的东西

或者,你可以使用一个依赖关系管理器常春藤或maven适合您的语言,但不要将他们的图书馆包含在您的语言中回购如果你能避免它。指向他们的代码版本更好,依赖管理器或subrepos是最干净的方法。

相关问题