【问题标题】:Merging Mercurial conflicts on command line?在命令行上合并 Mercurial 冲突?
【发布时间】:2011-12-19 00:59:24
【问题描述】:

好的,我通过 SSH 连接到服务器,我运行命令:

hg 合并

我现在被带到一个分为 3 个部分的屏幕。在底部它们被标记为:

  1. 文件

  2. 文件~other.Dcyqtz

  3. 文件~base.N64J4dp

显然它希望我解决冲突。看起来第一个是我的本地更改,另一个是我刚刚提取并尝试合并的更改。 base 是文件在拆分之前的样子。

因此,对于存在冲突的每个部分,我都应该选择保留 3 个中的哪一个。

我该怎么做?

我在一个命令外壳中,所以我不能点击任何东西。我只能在第 3 个部分中上下移动光标,我不知道如何将光标移到其他 2 个部分。

不知道怎么指定,这里用我的,那里用other,那边用base。

我也不知道怎么说,我放弃退出。

所以目前我被卡住了。

【问题讨论】:

    标签: shell mercurial ssh


    【解决方案1】:

    我在使用 KUbuntu 11.04 时遇到了完全相同的情况。 (而且我曾经使用过 emacs,而不是 vim。所以看着那些 3split 控制台也让我感到惊讶。)

    现在我做了 hg rollback 并安装了我的合并 gui 工具 KDiff3 。 然后研究“如何在 hg 合并中激活这个 gui 合并工具?”

    hg 帮助合并

    告诉我该怎么做...

    哪个kdiff3

    /usr/bin/kdiff3

    所以我加了~/.profile

    export HGMERGE="/usr/bin/kdiff3"
    

    然后一切都完成了。 在一个新的 shell 中 hg merge 弹出我的 gui 合并工具 KDiff3,请参阅 handbook-pdf http://kdiff3.sourceforge.net/doc/kdiff3_de.pdf

    【讨论】:

      【解决方案2】:

      正如 Cesar 所说,您需要一个 merge tool。如果你熟悉vim,我建议vimDiff

      另外,别担心,您没有丢失任何数据或做错任何事。 只需设置一些合并工具,使用hg update -C 重新开始。继续hg merge

      【讨论】:

      • 谢谢,它看起来像是在 vimDiff 中打开的。我实际上对 vim 并不熟悉(我总是使用 nano),所以我正在努力完成你列出的教程。我有 3 个打开的缓冲区,本地的、其他的和基础的。你知道如何关闭基础缓冲区吗?教程说这样做,但没有说明如何。谢谢。
      • 如果你对vimDiff不熟悉,我建议Ceaser方案使用X11转发,图形界面,e.g.融合。要退出 vim,请按 Escape,然后输入 :exit
      • 是的,vivim 就像打开时使用的最糟糕的默认编辑器,除了重度 unix 用户之外,任何人都完全无法理解。
      【解决方案3】:

      也许你需要的是merge tool

      更新:

      当然,您可能希望将 SSH 与 X11 forwarding 一起使用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-07
        • 1970-01-01
        • 2010-10-22
        • 1970-01-01
        相关资源
        最近更新 更多