Mercurial Diff Merge:这是什么工具以及如何使用它?

时间:2011-05-23 13:04:47

标签: linux vim mercurial diff version

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

enter image description here

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

3 个答案:

答案 0 :(得分:39)

这是vimdiff。您可以通过运行man vimdiff来了解有关它的更多信息。

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

[ui]
merge=internal:merge

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

答案 1 :(得分:5)

似乎在使用Vim的diff模块时需要一些帮助。见其中一个:

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

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

答案 2 :(得分:2)

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

[merge-tools]
kdiff3.priority=1000

)。

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