如何放弃未提交的汞合并?

我刚和 Mercurial 合作,我的情况:

  • 另一个程序员更改了文件的 rev 1,将4空间缩进替换为2空间缩进。(换句话说,每一行都改了。)打电话给那个2号神父,推到远程回收站。
  • 我已经在我的本地工作区中通过各种代码更改对转速1进行了实质性的更改,称之为转速3。
  • 我已经 hg pulld 和 hg merged 没有一个明确的想法是怎么回事。
  • 这些冲突层出不穷,而且并非真正意义上的实质性冲突。

所以我真的希望在合并之前将我的本地回购改为2个空格缩进; 然后合并将是琐碎的(我假设)。但我好像不能后退。我想我需要 hg update -r 3,但它说 abort: outstanding uncommitted merges

如何撤消合并,更改本地回购中的间距,并重新合并?

84577 次浏览

您可以使用-C (或—— clean)标志放弃未提交的更改:

hg update -C -r 3

小心: 所有没有承诺的东西都会消失!

之后,您可能应该使用某种代码格式化程序工具来完成整个操作,或者至少使用一些查找和替换正则表达式。用 __(2个空格)替换与 ^____匹配的内容(使用4个空格而不是下划线) ,重复几次(除非你有一些疯狂的嵌套代码)就可以了。

显然,我只需要使用 hg update -C -r 3,它会在考虑到转速的情况下覆盖我的本地文件(我原以为 hg update会这么做,但我错了。)谢谢你的帮助!

顺便说一句: 如果你只是恢复了你的合并,并且3不是你的修订号,你可以这样做:

hg update -C -r .

若要撤消未提交的合并,请使用

hg update --clean

它将签出原始合并父级的干净副本,丢失所有更改。