2013-04-14 81 views
0

我有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和stable。我這樣做:

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

但是!之後,如果我輸入hg update b2 mercurial告訴我,那33個文件已更新!分支實際上並不合併!

我在做什麼錯了?

回答

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合併到b2中。 b2分支未修改。

+0

我把B2合併成穩定的,但mercurial報告我有關1個更改的文件。與此同時,B2有33個文件與stable不同。 Mercurial忽略那些文件,我不知道爲什麼。我可以在這裏寫出一些來自hg的輸出,但是在我所有的實驗之後,我恐怕沒有這個好主意...... =) – user1988687

+0

這聽起來像是你陷入了一片混亂。 'hg branches'和'hg log -G'是你的朋友。 –

0
  1. 其他分支也沒用 - 你總是可以使用現有的「默認」
  2. 真正合並之前,爲了看變化與差異比較樹枝頭(並顯示DIFF在這裏,如果需要的話,充滿合併輸出也)

常見的合併工作流程將

  • hg up default
  • hg merge b1
  • ...化解矛盾,如果需要的話
  • hg commit -m "Merged b1"
  • hg merge b2
  • ...化解矛盾,如果需要的話
  • hg commit -m "Merged b2"