在第三个合并两个分支

时间:2013-04-14 23:54:28

标签: mercurial

我有2个用户在同一个项目中有2个分支(b1和b2)。每个用户使用自己的分支。当我尝试将这些合并在一起时,让我们说,在“稳定”分支中 - 我没有效果。

现在我在自己的分支(b1),并执行此操作:

hg branch stable //As I can understand - this is creates new branch, named "stable"
hg commit 
hg push //To make affect to bitbucket.

所以,此时,“稳定”和“b1”是一回事。我对吗? 接下来我应该合并b2和稳定。我这样做:

hg branch //to make shure, that I'm in "stable"
hg merge b2
hg commit
hg push

BUT!之后,如果我输入hg update b2 mercurial告诉我,那33个文件已更新!实际上,分支机构并没有合并!

我做错了什么?

2 个答案:

答案 0 :(得分:0)

  1. 附加分支无用 - 您可以随时使用现有的“默认”
  2. 在真正合并之前,将分支头与diff进行比较以查看更改(并在此处显示差异,如果需要,还可以完全合并输出)
  3. 常见的合并工作流程将是

    • hg up default
    • hg merge b1
    • ...如果需要,解决冲突
    • hg commit -m "Merged b1"
    • hg merge b2
    • ...如果需要,解决冲突
    • hg commit -m "Merged b2"

答案 1 :(得分:0)

如果查看存储库的图形,它将看起来像这样。

B1     o----o---B1
                  \
Stable             o----S
                       /
B2     o----o---o----B2
  • S是修订版hg update stable将带您前往。
  • B1是修订版hg update b1将带您前往。
  • B2是修订版hg update b2将带您前往。

hg branches将为您提供每个分支的负责人列表。

当您更新到b2时,您将回到合并前版本。完全允许:

hg update b2
<do some work>
hg commit

......你最终会得到:

B1     o----o---B1
                  \
Stable             o----S
                       /
B2     o----o---o-----o----B2

同样,您可以继续使用b1

这样想。您在stable,并将b2中的更改合并到stable,但未将stable合并到b2b2分支未经修改。