是否应该首先将命名分支合并到默认分支中,反之亦然?

时间:2011-12-08 14:35:01

标签: mercurial

我有一个中央回购和当地回购。 repo具有“默认”分支和一个名为branch“mybranch”的分支。如果我在命名分支中工作并希望偶尔将我的更改合并为默认值,然后继续在命名分支中工作,那么我应该这样做:

  1. 从中央仓库最新到我当地的仓库
  2. 在mybranch工作时,执行“hg merge default”合并默认INTO mybranch
  3. 本地提交
  4. 然后执行“hg update default”和“hg merge mybranch”合并mybranch INTO默认
  5. 本地提交
  6. 推向中央回购 Ë OR
  7. 与上面相同,但用#4切换#2? (所以我先将mybranch INTO默认合并?

2 个答案:

答案 0 :(得分:13)

你写的是

  

希望偶尔将我的更改合并为默认值,然后继续在命名分支

中工作

除非功能完成,否则通常不应将功能分支合并到default分支中。也许这就是你的意思?

仅供参考,建议的工作流程是

  1. 创建功能分支
  2. 在那里做你的工作
  3. 定期(每隔几天)将default的更改合并到功能分支中:

    1. hg pull以获取其他开发者的最新更改
    2. hg merge将最新更改集成到您的功能分支
  4. 完成功能分支后,将其合并回default

    1. hg pull
    2. hg update default签出要合并的分支
    3. hg merge myfeature进行合并
  5. 最终合并将非常小,因为default与特征分支的定期合并确保从两个分支头只有一小段距离回到共同的祖先。

答案 1 :(得分:7)

现在的方式(首先将default合并到mybranch)是我的首选方式。

我倾向于使用分支来隔离特定特征或重构的更改,因此最好将default的变更集定期添加到命名分支中。这样,命名分支的更改与default分支保持同步。