代码之家  ›  专栏  ›  技术社区  ›  Marcelo Cantos

Mercurial:如何使用两个“主要分支”

  •  2
  • Marcelo Cantos  · 技术社区  · 7 年前

                ---- B
               /
    ---source-+----- A
    

    现在我想知道我是怎么处理的。

                              ----- new feature -------
                             /                         \
                ---- B1 ----+ B2 --- B3 ----- bugfix ---+- MERGE ---
               /
    ---source-+----- A1 ---- A2 ------------------------------------
    

    显然,我不能只是将分支B合并到A中,否则我会在A中完成我在B中所做的所有更改(但我不想要更新的徽标)。

    this question ? 这将迫使我适应一个全新的工作流程。

    另一个 related question

    1 回复  |  直到 7 年前
        1
  •  2
  •   planetmaker    7 年前

    a) 有三个分支机构,一条主线拥有每个项目/客户所需的一切,两个客户分支机构有与主线相关的具体变更,变更徽标或文字。主线接收错误修复和新功能,并定期合并到客户分支中。这样他们就不会相互“污染”。

    选择a)或b)是一个品味问题,在我看来,更多的问题是你是否会有更多由双方共享的变更集(然后是3个分支,更少的嫁接),或者你是否有更多特定于一个分支或另一个分支的变更集-然后嫁接是更少的工作。不过,我可能几乎总是选择a);感觉“更干净”。

    实际上有一个选项c):将两个分支相互合并,合并时注意不要合并特定于另一个分支的内容。但至少从长远来看,这可能非常乏味;这主要取决于差异的复杂性以及它们相对于一般变化的位置。如果细节在它们自己的文件中,则在合并过程中合并和跳过“错误”的更改相对容易。