如何在Mercurial中结合两个项目?

我有两个单独的mercurial仓库。 在这一点上,他们“合一”是有道理的,因为我想同时在这两个项目上工作。

我真的很喜欢这两个项目都是新的存储库中的一个子目录。

  1. 我如何合并这两个项目?
  2. 这是一个好主意,还是应该让他们分开?

看来我应该能够从一个仓库推到另一个仓库…也许这是非常简单的?

我能够以这种方式结合我的两个存储库:

  1. 使用hg clone first_repository克隆其中一个存储库。
  2. 使用hg pull -f other_repository从另一个存储库中提取代码。

拉的-f (强制)标志是关键 – 它说忽略这两个存储库不是来自同一个源的事实。

这里是这个function的文档 。

hg自1.3(2009-07-01)开始有subrepo 。 早期的版本是不完整和摇摇欲坠的,但现在它很可用。

如果您在项目中不使用相同的代码,请将它们分开。 您可以将每个项目的个人存储库设置为只是一个目录。 为什么混合所有的分支,合并,并提交意见,当你不需要。

关于您的编辑:从一个存储库推到另一个存储库。 您始终可以使用transplant命令。 虽然,这一切是真正的一面,你的愿望结合起来,所以你可能会感到不舒服使用我的build议。 那么你可以使用林扩展,或者其他的东西。

 hg transplant -s REPOSITORY lower_rev:high_rev