2010-09-16 70 views
1

我在試用某個特定功能時遇到了Mercurial工作流程中的問題。我嘗試了三種不同的方法來實現該功能,通過提交每個更新,然後更新到之前的更改集 - 所以我最終得到了三個不同的分支。Mercurial實驗工作流程

一旦我選擇其中一個分支作爲該功能的「正確」實現,我想刪除其他分支以便我沒有多個頭。我如何以簡單的方式做到這一點?我最終將三個分支合併在一起,這是毫無意義的,因爲我只想要一個分支的代碼。

回答

2

除了hg stripmq extension,你可以簡單地使用standard clone command:在../pruned

$ hg clone -r the-good-head . ../pruned 

得到的克隆是隻保存了好頭(和它的所有祖先)。這是在Mercurial中修剪內容的安全內置方式,它的優點是在命令後您仍然可以保持兩個存儲庫完好無損。所以如果你犯了一個錯誤,那麼就刪除../pruned克隆。

2

下關閉分支

hg commit --close-branch 

它不會在

hg branches or hg heads 
+0

它仍然顯示在HM頭。我其實並沒有真正創建過一個分支,只是一個3頭九頭蛇! – Tarski 2010-09-16 16:18:53

+0

它適合我。你碰巧有'-c'作爲'hg heads'的默認選項嗎? – 2010-09-16 16:22:44

+0

另外在Mercurial 1.3.1中有一個錯誤,這在最新版本的Mercurial(hg heads)上效果很好。 – pyfunc 2010-09-16 16:32:52

1

顯示啓用內置的MQ擴展和運行hg strip

@pyfunc的答案保持修訂歷史中的封閉分支,這是我實際上會做的除非你不需要的分支是巨大的。