【发布时间】:2010-09-16 15:55:00
【问题描述】:
在尝试实现某个功能时,我在 Mercurial 工作流程中遇到了问题。我尝试了三种不同的方法来实现该功能,方法是提交每个更新,然后更新到以前的变更集——所以我最终得到了三个不同的分支。
一旦我选择了一个分支作为该功能的“正确”实现,我想删除其他分支,这样我就没有多个头了。我如何以简单的方式做到这一点?我最终将三个分支合并在一起,这是毫无意义的,因为我只想要一个分支的代码。
【问题讨论】:
在尝试实现某个功能时,我在 Mercurial 工作流程中遇到了问题。我尝试了三种不同的方法来实现该功能,方法是提交每个更新,然后更新到以前的变更集——所以我最终得到了三个不同的分支。
一旦我选择了一个分支作为该功能的“正确”实现,我想删除其他分支,这样我就没有多个头了。我如何以简单的方式做到这一点?我最终将三个分支合并在一起,这是毫无意义的,因为我只想要一个分支的代码。
【问题讨论】:
除了mq extension中的hg strip,您还可以简单地使用standard clone command:
$ hg clone -r the-good-head . ../pruned
在../pruned 中获得一个克隆,它只包含好头(及其所有祖先)。这是在 Mercurial 中修剪内容的安全、内置方法,它的优点是在命令之后您仍然拥有完整的两个存储库。因此,如果您犯了错误,则只需删除 ../pruned 克隆。
【讨论】:
以下关闭一个分支
hg commit --close-branch
它不会出现在
hg branches or hg heads
【讨论】:
-c 作为hg heads 的默认选项吗?
启用内置 mq 扩展并运行hg strip。
@pyfunc 的回答将关闭的分支保留在修订历史记录中,除非您不需要的分支很大,否则我实际上会这样做。
【讨论】: