2013-01-04 72 views
0

我的存儲庫只有兩個分支:默認和穩定。我在穩定的分支中弄得一團糟,但我不知道如何解決它。Mercurial:修復一個存儲庫與幾個頭

Current Repository

默認分支的新功能

92 is the revision created by the maven-release-plugin. 
93 commit on stable 
94 merge stable into default 
95 to 98 commit on default 
99 merge default into stable 
100 to 103 commit on stable 
104 try to fix the mess with a hg merge -r 98 

對於default我想頭部以98。爲了穩定,我想回到包括承諾9498的單個頭部。

+0

看起來像你需要做的唯一的事情就是關閉轉。 93分支(或剝離它),併合並103和104 - 一切似乎都很好,不是嗎? – Lucero

+0

或者重訂到104 93 100 103 ...,因爲他們都是相「草稿」? –

回答

1

Default的頭應該是98;不是嗎?運行hg heads default以獲取default分支上正面的變更集列表。從你的圖中,這是98,只有98.

爲了穩定,它聽起來像你想要hg merge提交103和104.要做到這一點,更新到其中之一(hg update 103),然後合併另一個hg merge 104)。

您仍然需要處理提交93.您是否還希望在stable中擁有它?或者你想不要有它的影響?如果你想在stable中使用它,也可以將它合併。

如果您根本不想在stable中看到它的效果,則根據發生的情況,您需要做的事情會有所不同。它只是在你的本地計算機上,還是你已經把它推向上游?如果它只在本地計算機上運行,​​則運行hg strip 93將從您的存儲庫中刪除它,並且它不會被遠程推送。要做到這一點,你必須啓用mq extension

如果您已向上遊推送93,則無法剝離它。但是,您可以做的是通過更新到變更集93,然後運行hg backout 93來作出承諾,以免除93的影響。然後,您可以合併新提交到stable分支,這將是好像你從未承諾93 93將是你的歷史,但它的代碼更改了。

+0

我合併了103和104.由於我想保持提交93,我也合併了它。感謝您的描述性答案。 – Sydney

相關問題