我正在开发一个使用mercurial的项目,并且它已经陷入了一些混乱的问题,其中包含许多用于所有密集目的的磁头。
我想杀掉这些头并将提交图恢复到一行。
我被告知有一种合并分支的方法,但同时忽略任何文件更改,所以基本上只是合并树,但我似乎无法解决命令集。
有没有办法做到这一点,通过合并并忽略文件更改来终止分支?或者有没有一种方法可以在没有更改的情况下再次引入图形(在项目中没有大的不相关性)?
答案 0 :(得分:5)
如果您正在使用TortoiseHg和命名分支,则可以在提交对话框中选择分支选项以关闭分支,它将允许您在不实际更改文件的情况下提交。
它仍会留下一个头,但它会被标记为无效。
答案 1 :(得分:3)
我认为这正是您所寻找的: Keep My or Their files when doing a merge
它将创建新的合并变更集,关闭“其他”头部,无需接受任何更改。你最终不会得到一个线性历史,但你最终会得到一个单一的头。
其他劣势答案包括使用hg strip
或hg clone -r
来消除您不想要的头/匿名分支。它们是劣等的,因为(a)如果存在其他克隆,你就不能剥离它根本不起作用;(b)它们抛弃了与良好的版本控制实践相反的历史 - 甚至是你不认为的工作你现在想要的东西有一天会很有价值。