2010-09-16 72 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的答案保持修订历史中的封闭分支,这是我实际上会做的除非你不需要的分支是巨大的。