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

Mercurial可以合并一个不是头部的命名分支吗?

  •  7
  • Calyth  · 技术社区  · 16 年前

    基本上,我有一个开发分支,我喜欢在实现某个东西的同时创建一个功能分支,然后将其合并回来。因此,会出现以下情况

     a
     b
     c
     d - dev
    / 
    e
    f - feature
    

    我很确定git可以很好地做到这一点,但似乎无法说服Mercurial也这样做。..

    2 回复  |  直到 16 年前
        1
  •  19
  •   Steve Losh    16 年前

    卡尔·迈耶说得对。你以git用户的身份思考,Mercurial的处理方式不同。

    你可以按照Carl的建议去做,然后强制下一个commit在开发分支上。不过,如果我看到它,我个人会觉得这相当令人困惑,因为开发分支中会有一个不连续性。

    我处理它的方法是将功能分支合并回: hg update dev && hg merge feature && hg commit -m 'Merge in the completed feature.'

    这将导致一个类似以下的图形:

      a - dev
      b - dev
      c - dev
      d - dev
     /|  
    e | - feature
    f | - feature
     \|
      g - dev
    

        2
  •  6
  •   Carl Meyer    16 年前

    hg中的命名分支(与git不同)不会“指向”任何地方。分支名称不是特定版本的可移动别名。每个提交都有一个元数据标记,用于命名提交所在的分支;这就是全部。

    在这种情况下,如果你在dev分支上没有从“d”向下的单独提交,那么你需要做的就是运行“hg-brance-dev”,然后你的下一个从“f”向下的提交将返回到dev分支。我认为这将实现你想要的结果。

    编辑