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

如何在Mercurial中合并两个项目?,mercurial,Mercurial,我有两个独立的mercurial存储库。在这一点上,他们“合二为一”是有道理的,因为我想同时处理这两个项目 我真的希望这两个项目各自成为新存储库中的一个子目录 如何合并这两个项目 这是个好主意,还是我应该 把它们分开 似乎我应该能够从一个存储库推送到另一个存储库。。。也许这真的很简单?如果项目中没有使用相同的代码,请将它们分开。您可以将每个项目的个人存储库设置为一个单独的目录。为什么不必混合所有分支、合并和提交注释呢 关于编辑:从一个存储库推送到另一个存储库。您始终可以使用该命令。尽管如此,这一

我有两个独立的mercurial存储库。在这一点上,他们“合二为一”是有道理的,因为我想同时处理这两个项目

我真的希望这两个项目各自成为新存储库中的一个子目录

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

  • 似乎我应该能够从一个存储库推送到另一个存储库。。。也许这真的很简单?

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

    关于编辑:从一个存储库推送到另一个存储库。您始终可以使用该命令。尽管如此,这一切实际上是在回避你想要将两者结合起来的愿望,所以你可能会对使用我的建议感到不舒服。然后,您可以使用林扩展或其他功能

    hg transplant -s REPOSITORY lower_rev:high_rev
    

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

  • 使用
    hg clone first_repository
    克隆其中一个存储库
  • 使用
    hg pull-f other_repository
    从其他存储库中拉入代码
  • pull上的
    -f
    (force)标志是关键——它表示忽略两个存储库不是来自同一个源的事实


    以下是这项功能。

    hg从1.3版(2009-07-01)开始使用。早期版本不完整且不稳定,但现在非常有用。

    这是否也保留了第二次回购时提交的哈希键?(我想不会,但在您进行合并之前可能还可以。)这是可行的,但您还需要运行
    hgmerge
    以最终获得所有内容working@MarcusLindblom:拉取变更集永远不会改变它的散列。执行此操作后,如果查看
    hg glog
    ,您将看到有两行不相关的变更集。每行中的第一个变更集都没有父变更集,但这对Mercurial来说不是问题。一旦拉入,您将希望为每一行创建一个新的变更集,在该行中,您将
    hg mv
    所有内容都放入相应的子文件夹中,然后合并这些行,然后您就全部设置好了。如果这两个存储库都有共同的代码,该怎么办。合并会自动处理吗?至于合并,我们只能说$hg merge?为了便于参考,这里是这个过程的文档,我发现subrepo很难处理。它们是有效的,但你必须跳出一些障碍才能让它们表现出来,如果你不小心的话,它们可能会成为很多令人头疼的问题的根源。可能值得注意的是,子存储库是官方的最后手段:(截至2013年11月12日)