如果多个分支处于活动状态,如何进行 Mercurial 合并?

How to do a Mercurial merge in case multiple branches are active?

我的 Mercurial 存储库中有以下分支结构

               ----------B-------
              /
             /
-----default----------------------------
             \    \            /
              \    \          /
               --------A------
                     \
                      \
                       ------C------

我想合并 default 分支和 B 分支(其中 B 分支是我的“工作”分支)。我的想法是首先“切换”到默认的 branch。 所以我打算执行以下步骤

  1. hg update default(切换到 default 分支)
  2. hg merge B(用于将 B 分支上的更改“拉”到 default 分支上)
  3. 解决冲突
  4. hg commit(使合并持久化)

谁能告诉我我将要使用的步骤是否也适用于我的情况,即如果我有默认分支和另外两个活动(开放)分支,其中只有一个是与默认合并?

您建议的工作流程的结果是这样的:

               ----------B------- - - 
              /                       \
             /                         \
-----default----------------------------(*)
             \    \            /
              \    \          /
               --------A------
                     \
                      \
                       ------C------

后面的 (*) 标记当前工作目录。

事实上有一个分支 C 不应该引起任何关注。可能有任何其他分支,例如 C,并且在您单独与它们合并之前,它们不会影响您将 B 合并到 default

假设不再需要AB,您可以关闭它们。这只是一个标记/提醒,表明对它们的工作已经完成,但没有太多其他实际效果。例如,您可以稍后在关闭的分支上恢复工作,甚至可以在需要时将其重新合并回 default。 (另一方面,您也可以再次从 default 分支并在那里完成该工作。)