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

时间:2020-03-05 18:40:00  来源:igfitidea点击:

我有两个单独的Mercury存储库。在这一点上,它们"成为一体"是有道理的,因为我想同时从事两个项目。

我真的希望两个项目都成为新存储库中的子目录。

  • 如何合并两个项目?
  • 这是个好主意,还是应该将它们分开?

看来我应该能够从一个存储库推送到另一个存储库……也许这真的很简单?

解决方案

回答

如果我们在整个项目中使用的不是相同的代码,请将它们分开。我们可以将每个项目的个人存储库设置为一个单独的目录。为何不必混合所有分支,合并和提交注释。

关于编辑:从一个存储库推送到另一个存储库。我们总是可以使用transplant命令。虽然,所有这些实际上都在阻碍我们将两者结合的愿望,所以使用我的建议可能会让我们感到不舒服。然后,我们可以使用林扩展名或者其他内容。

hg transplant -s REPOSITORY lower_rev:high_rev

回答

我能够通过这种方式合并我的两个存储库:

  • 使用hg clone first_repository克隆其中一个存储库。
  • 使用hg pull -f other_repository从其他仓库中提取代码。

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

这是此功能的文档。

回答

从1.3(2009-07-01)开始,hg开始具有subrepo。早期版本不完整且不稳定,但是现在可以使用了。