如何放弃hg合并?

时间:2010-04-03 02:58:42

标签: mercurial merge

我很想与Mercurial合作。我的情况:

  • 另一个程序员更改了文件的rev 1以用2空格缩进替换4空格缩进。 (即改变每一行。)调用rev 2,推送到远程仓库。
  • 我已经在本地工作区中通过各种代码更改实现了实质性更改。称之为rev 3.
  • hg pull编辑了hg merge d,但没有清楚知道发生了什么。
  • 冲突是无数的,而不是真正的实质性。

所以我真的希望在合并之前我将本地回购更改为2空格缩进;然后合并将是微不足道的(我想)。但我似乎无法支持。我想我需要hg update -r 3,但它说abort: outstanding uncommitted merges

如何撤消合并,更改本地仓库中的间距,然后重新合并?

4 个答案:

答案 0 :(得分:120)

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

hg update -C -r .

答案 1 :(得分:117)

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

hg update -C -r 3

当心:未提交的所有内容都将消失!

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

答案 2 :(得分:30)

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

hg update --clean

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

答案 3 :(得分:2)

我显然只需要hg update -C -r 3,它会记住我的本地文件(我认为hg update会这样做;但我错了。)谢谢你的帮助! / p>