【问题标题】:Mercurial Diff Merge: What tool is this and how do I use it?Mercurial Diff Merge:这是什么工具以及如何使用它?
【发布时间】:2011-05-23 13:04:46
【问题描述】:

我是 mercurial 的新手,我对 TortoiseHG 很熟悉,但这是我第一次在无头 linux 环境中管理项目。推后我做了一个hg update,我得到了这个屏幕:

帮助部分说它是 vim,我该如何合并我的应用程序。

【问题讨论】:

  • 三个没有实际答案的答案

标签: linux vim mercurial diff version


【解决方案1】:

这是 vimdiff。您可以通过运行man vimdiff 了解更多信息。

但是,我建议使用 mercurial 的 internal:merge 工具。它将执行合并,如果发生冲突,则在文件中插入冲突标记并通知您存在冲突。然后打开文件,解决冲突,删除冲突标记,将文件标记为已解决,当所有文件都被清理后,您可以提交合并的结果。这与 subversion 处理冲突的方式非常相似。您可以将 mercurial 配置为使用 internal:merge,方法是将以下内容添加到您的 ~/.hgrc 文件中:

[ui]
merge=internal:merge

您将用于获取冲突文件列表并将其标记为已解决的工具称为hg resolve,因此我建议您运行hg help resolve 以了解有关该工具的更多信息。您可以通过运行:hg help merge-tools 了解更多关于 mercurial 对合并工具的支持。

【讨论】:

    【解决方案2】:

    看来您在使用 Vim 的 diff 模块时需要一些帮助。查看其中之一:

    如果您不习惯使用 Vim,肯定有一个选项可以让您指定自己喜欢的 diff 工具,但我不知道 HG,所以我无法告诉您必须修改哪个选项。

    打开的 Vim 有三个文件被比较,所以我猜你在执行 hg update 时遇到了一些冲突。

    【讨论】:

    • 我制作了一个截屏视频,展示了how to perform a 3 way merge conflict in Vim。该示例使用 git 而不是 mercurial,但适用相同的原则。
    • 虽然我很欣赏你试图提供帮助,但这些链接都没有处理三文件差异,并且它们提供几乎完全重复的信息。我认为他们根本无法回答所提出的问题。
    【解决方案3】:

    根据我的经验,到目前为止,对大多数人来说最容易使用的工具是 kdiff3(直观的菜单、带有底部的自然视图以及上面的提示和下面的结果文本、良好的键盘快捷键 - Ctrl-1/Ctrl- 2/Ctrl-3 从第一个/第二个/第三个窗口中选择 sn-p,Ctrl-箭头从冲突跳转到冲突)。只需安装此程序并在合并工具配置中给予最高优先级(设置

    [merge-tools]
    kdiff3.priority=1000
    

    )。

    一般来说:无论您使用哪种工具,它都会向您显示文件的冲突版本,并希望您创建最终版本。

    【讨论】:

      猜你喜欢
      • 2018-01-30
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      相关资源
      最近更新 更多