2013-10-14 30 views
0

我們有3個分支,默認錯誤修正和釋放。mercurial複製一個現有的分支

經過一些錯誤的合併後,bugfix現在處於非常壞的狀態。我們有一段時間忽略了這個分支,但現在又需要它了。我希望它完全像默認,但合併不起作用,因爲它現在具有與默認相同的祖先。

我試過只是將缺省分支複製到bugfix分支,並提交。

這似乎在這個意義上,

hg up --rev commitB 
hg diff --rev commitA 

汞差異還給沒有工作,和

hg up --rev commitA 
hg diff --rev commitB 

汞差異還給沒什麼

但是當我從一個HG了承諾到另一個我仍然看到「42文件更新」,這讓我覺得有差異...

我如何知道確實沒有任何區別?如果有我如何使分支相同?

+0

是那兩個在同一分支提交?下面的命令顯示什麼? 'hg diff -r commitA -r commitB' – Farid

+0

它們不在同一個分支中,並且該提交沒有返回任何內容 – Xeli

+0

您可以發佈'hg glog -l5'的結果嗎(注意:它是L小寫,數字可以增加到歷史的更遠) – Farid

回答

1

分支比您想象的更流暢。當你談論分支X中的內容時,你真正說的是「如果我檢查分支:標籤設置爲X的最新(技術上有點提示的)提交,工作目錄的外觀如何。

因此,如果我理解你希望你的最簡單的解決方法就是創建一個新的(因此最近)與分支的名稱提交bugfix這應該這樣做:

hg update default 
hg branch --force bugfix 
...make a tiny change (perhaps to the readme)... 
hg commit -m 'reinvogorating bugfix' 

然後,當你hg update bugfix它會完全像deafult是你當時的那個。

你在做什麼不是因爲已經被刪除和/或默認添加的文件沒有被刪除或者通過copypaste添加到你的修補程序中,但是確實不要複製粘貼,只需重新創建缺省的bugfix並完成它。

+0

這正是我所尋找的答案:) bugfix的老頭會發生什麼?它只是一個腦袋而已? – Xeli

+0

它仍然是一個頭。如果你想讓它消失,你可以'hg更新bugfix; hg commit --close-branch',然後再執行上述步驟,或者您可以將它合併到中並且不從中選擇任何內容,但兩者都不是必需的。你參考'bugfix'的每個地方都會得到最滿意的結果。 –

+0

我認爲不適合合併,所以頭部消失,然後在你的答案中做例行公事,謝謝! – Xeli

相關問題