代码之家  ›  专栏  ›  技术社区  ›  Grumdrig

如何放弃汞合并?

  •  114
  • Grumdrig  · 技术社区  · 16 年前

    我刚开始和Mercurial合作。我的处境:

    • 另一个程序员更改了文件的rev 1版本,将4空间缩进替换为2空间缩进。(即每一行都改变了)调用rev 2,推到远程回购。
    • 我已经在本地工作区中提交了带有各种代码更改的实质性更改rev 1。称之为第三版。
    • 我已经 hg pull ED和 hg merge 不知道发生了什么。
    • 冲突是无数的,并不是真正的实质性冲突。

    因此,我真希望在合并之前将本地回购更改为两个空格的缩进;那么合并将是微不足道的(我想)。但我好像不能退后。我想我需要 hg update -r 3 但它说 abort: outstanding uncommitted merges .

    如何撤消合并、更改本地回购的间隔并重新合并?

    4 回复  |  直到 10 年前
        1
  •  114
  •   R. Martinho Fernandes    16 年前

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

    hg update -C -r 3
    

    当心:一切没有承诺的都会消失!

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

        2
  •  115
  •   math    16 年前

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

    hg update -C -r .
    
        3
  •  28
  •   ksokol    10 年前

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

    hg update --clean
    

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

        4
  •  1
  •   Grumdrig    16 年前

    显然我只是想 hg update -C -r 3 ,这将覆盖我的本地文件,并记住rev(这是我的想法 hg update 会的;但我错了。)谢谢我的帮助!

    推荐文章