代码之家  ›  专栏  ›  技术社区  ›  Rob

在Mercurial中跨存储库合并?

  •  2
  • Rob  · 技术社区  · 14 年前

    我正在考虑从SVN切换到HG,目前有一个典型的项目foo的SVN布局:

    Foo
      trunk
      branches
        1.0
        1.1
    

    我可以使用 hg import 命令,为主干和两个分支(通过使用 --config convert.hg.clonebranches=1 导入开关。)

    现在,如果客户在foo的v1.0版本中发现了一个bug,我如何将此修复应用于1.1和主干存储库?它们是旧SVN分支的单独副本,因此 hg merge 不会有用吧?

    如果我在hg上从头开始一个新项目,那么我可以为不同的版本使用标签,并轻松地将从一个标签到另一个标签的更改合并起来,但是从svn导入时,我没有这种奢侈感…或者我错过了什么?

    2 回复  |  直到 14 年前
        1
  •  1
  •   RyanWilcox    14 年前

    我喜欢 hg transplant ( transplant extension homepage )为此:这将需要提交并将其移动到某个地方。S选项将允许您将其从一个回购移动到另一个回购。

    您还可以指定要发生的合并,以及单个修订、多个修订,或者让它启动“交互式变更集选择器”(无论这意味着什么)。(虽然我还没有尝试回购之间的合并选项…但是我知道指定一个变更集非常有效!)

        2
  •  1
  •   Ry4an Brase    14 年前

    您应该能够使用普通的推/拉合并来来回获取更改。convert足够智能,1.0和1.1中相同的部分将是相同的变更集。因此,在1.0中进行更改,您应该能够将其拉入1.1和main中,并完全合并。

    如果你认为你会从1.1变成1.0, hg update 到您知道在1.0中的变更集 之前 进行更改,您也可以在1.0中清晰地将其拉入和合并。