如何放弃hg合并?

Gru*_*rig 127 merge mercurial

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

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

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

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

mat*_*ath 127

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

hg update -C -r .
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样的人来说,起初并没有得到它是如何工作的:点`.`是前一版本的快捷方式. (22认同)

R. *_*des 122

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

hg update -C -r 3
Run Code Online (Sandbox Code Playgroud)

请注意:未提交的所有内容都将消失!

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

  • 值得注意的是,不会删除未跟踪的文件. (5认同)

小智 31

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

hg update --clean
Run Code Online (Sandbox Code Playgroud)

这将检查原始合并父级的干净副本,丢失所有更改.