关闭头部而不做任何改变

Aar*_*ell 6 mercurial

我正在研究一个使用mercurial的项目,并且它已经陷入了一些混乱的问题,其中包括许多用于所有密集目的的磁头.

我想杀掉这些头并将提交图重新放回一行.

我被告知有一种合并分支的方法,但同时忽略任何文件更改,所以基本上只是合并树,但我似乎无法解决命令集.

有没有办法做到这一点,通过合并和忽略文件更改来杀掉分支?或者有没有一种方法可以在没有更改的情况下再次引入图形(在项目中没有大的不相关性)?

Bin*_*ile 5

如果您正在使用TortoiseHg和命名分支,则可以在提交对话框中选择分支选项以关闭分支,它将允许您在不更改实际文件的情况下提交.

它仍会留下一个头,但它会被标记为无效.

  • 这就是我的方式.命令行是`hg commit --close-branch` (2认同)
  • 这适用于匿名分支(没有分支名称的头)(从Hg 2.0.2开始).更新到要关闭的头部并"hg commit --close". (2认同)

Ry4*_*ase 3

我认为这正是您正在寻找的: 在进行合并时保留我或他们的文件

它将创建新的合并更改集,关闭“其他”头,而不接受其任何更改。你最终不会得到线性历史,但最终会得到一个头。

其他较差的答案包括使用hg striphg clone -r消除您不想要的头/匿名分支。它们是劣等的,因为(a)如果存在其他克隆,你无法剥离它根本不起作用,(b)它们丢弃历史记录,这与良好的版本控制实践相反 - 即使是你不认为的工作你现在想要的也许有一天会变得有价值。