2011-06-12 111 views
0

後分支出來 -不能推到遠程回購合併

[default]$ hg branch talks 
[talks]$ <... some commits ...> 
[talks]$ hg update default 

合併回 -

[default]$ hg merge talks 
3 files updated, 0 files merged, 0 files removed, 0 files unresolved 

推到遠程回購 -

[default]$ hg commit -m "merging talks to default" 
[default]$ $ hg push 
abort: push creates new remote branches: talks! 
(use 'hg push --new-branch' to create new remote branches) 

進一步調查顯示,遠程回購沒有按」我想讓我在遠端有多個頭。但我只是做了合併,將兩個頭合併成一個,不是嗎?

hg serve圖形似乎也同意我(我希望) enter image description here

但是,我也看到兩個腦袋從hg heads

[default]$ hg branches 
default      9:85752ecd6326 
talks       8:2b00714d76d5 (inactive) 

回答

1

我猜你已經誤解了分支功能。你剛剛創建了一個名字的分支將永遠存在於存儲庫中。我懷疑你並不是真的想這樣做。您可能需要調查本地分支的書籤功能,這些分支最終沒有永久存在於存儲庫中的名稱。

Mercurial Balks推動將新的全局分支名稱添加到正在推送到的存儲庫中,因爲這很少是您真正想要做的。 hg push --new-branch會告訴Mercurial,是的,你真的打算這麼做。

你看到的兩個頭是誤導。注意一個頭如何被列爲'(不活動)'。這僅僅意味着它是全球分支上的最後一次變化,但不是真正的頭。你經常想看到分支的頭,即使這些頭真的有孩子,並不是真正的頭。

作爲一個小撇撇子......我寫了一段代碼,將這個功能添加到'頭部'命令一段時間後面。 :-)

2

的解決方案是在中止消息:use 'hg push --new-branch'。您已經創建了一個名爲talks的命名分支,因此無論您是否已將命名分支合併回默認值,它都需要此額外開關。