如何放弃一个汞合并?

我是新来的与Mercurial合作。 我的情况:

  • 另一个程序员改变了文件的第一个版本,用两个空格的缩进replace了4个空格的缩进。 (即改变了每一行。)调用第2版,推到远程回购。
  • 我已经承诺在本地工作区进行各种代码更改的第一次修改。 打电话给rev 3。
  • 我没有清楚地知道发生了什么事情,但是我已经hg pull和d hg merge了。
  • 冲突是无数的,并不是真正的实质性的。

所以我真的希望在合并之前将我的本地库修改为2格缩进; 那么合并将是微不足道(我假设)。 但我似乎无法备份。 我想我需要hg update -r 3但它说abort: outstanding uncommitted merges

我怎样才能撤消合并,改变我的本地回购空间,并remerge?

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

 hg update -C -r 3 

注意:所有没有提交的东西都将被删除!

之后,你可能应该使用某种代码格式化工具来完成整个操作,或者至less有一些查找和replace正则expression式。 用__ (2个空格)代替^____ (使用4个空格而不是下划线),重复几次(除非你疯狂地使用了一些嵌套代码)就可以工作。

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

 hg update -C -r . 

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

 hg update --clean 

这将检查出原始合并父项的一个干净的副本,失去所有的变化。

我显然只需要hg update -C -r 3 ,它会覆盖我的本地文件(这是我认为hg update会做的;但是我错了)感谢您的帮助!