合并后如何删除Mercurial分支

Ivi*_*ica 23 mercurial

我正在为我的应用程序中的新功能创建命名的Mercurial分支,在完成特定功能后,我将该分支合并到默认分支,并关闭此功能分支.

但我想知道是否有办法完全删除那些命名分支,而不会丢失合并到默认分支的更改?

dan*_*ann 30

不,没有.

合并两个分支后,合并提交取决于其两个父提交的存在.这意味着您无法删除构成合并分支的提交,除非您还删除了您不想要的合并提交.

这也不是做事情的"Mercurial方式".当分支已合并到另一个分支,并且在该分支上没有进一步开发时,Mercurial会认识到该分支不再处于活动状态; hg branches将这些非活动分支放在列表的底部.您还可以使用关闭分支hg commit --close-branch,这将从hg branches列表中删除分支(除非-c给出参数).

听起来你应该查看Mercurial队列(MQ),因为它支持与你描述的类似的工作流程.例如,您可以设置多个MQ队列,每个队列代表一个开发分支.

  • 你的答案接近完美(我赞成它)但@lvica应该在MQ之前查看书签.MQ很难.这是一个真正的powertool,现在它已经不再受欢迎了,因为阶段(很快就会过时)就在这里.另一方面,书签非常适合于每个功能的拆分,其中永久命名的分支可能过度. (7认同)