Mercurial - 将两个分支合并为第三个新分支

时间:2011-03-22 04:38:02

标签: mercurial branching-and-merging

是否有可能将一个分支合并到另一个现有分支,而不是将两个分支合并到第三个新分支中?

1 个答案:

答案 0 :(得分:7)

只需合并您现有的两个分支,并将合并视为第3个新分支的提示以及合并分支的前任负责人作为您的第1和第2分支:

o    changeset:   3:92692c4a6b12
|\   bookmark:    masala
| |  summary:     merge salt and pepper
| |
| o  changeset:   2:a5f955adf03d
| |  bookmark:    pepper
| |  summary:     add some pepper
| |
o |  changeset:   1:2b56f2dc115f
|/   bookmark:    salt
|    summary:     add some salt
|
o  changeset:   0:e992ce7dd508
   summary:     initial

此处书签已被用于标记开发中的不同行。因此,如果您想要在新的第3分支中工作,请更新到masala,如果您想要在第一个分支上工作,请更新到salt,并将第二个分支更新更新为{{1}在你继续工作和提交之前。

如果您更喜欢使用命名分支(而不是书签),只需在提交第2版和第1版的合并之前发出pepper

基本信息是,虽然图表只有一个头,可以自由地将其解释为3个不同的开发线。

现在,假设你想继续第二个分支hg branch masala的工作:

pepper

然后你对$ hg up pepper ... hack ... $ hg ci -m "need more pepper" 事情有了一些想法:

salt

现在,历史图表更清楚地显示了您的3个分支:

$ hg up salt
... hack ...
$ hg ci -m "less salt please"

书签和命名分支的替代方法是为各个分支使用不同的克隆。那就是你用未合并的分支克隆你的repo并将它们合并到克隆中。哪种方法最好,取决于您的具体工作流程和个人偏好。