【发布时间】:2011-05-23 13:04:46
【问题描述】:
我是 mercurial 的新手,我对 TortoiseHG 很熟悉,但这是我第一次在无头 linux 环境中管理项目。推后我做了一个hg update,我得到了这个屏幕:
帮助部分说它是 vim,我该如何合并我的应用程序。
【问题讨论】:
-
三个没有实际答案的答案
标签: linux vim mercurial diff version
我是 mercurial 的新手,我对 TortoiseHG 很熟悉,但这是我第一次在无头 linux 环境中管理项目。推后我做了一个hg update,我得到了这个屏幕:
帮助部分说它是 vim,我该如何合并我的应用程序。
【问题讨论】:
标签: linux vim mercurial diff version
这是 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 对合并工具的支持。
【讨论】:
看来您在使用 Vim 的 diff 模块时需要一些帮助。查看其中之一:
如果您不习惯使用 Vim,肯定有一个选项可以让您指定自己喜欢的 diff 工具,但我不知道 HG,所以我无法告诉您必须修改哪个选项。
打开的 Vim 有三个文件被比较,所以我猜你在执行 hg update 时遇到了一些冲突。
【讨论】:
根据我的经验,到目前为止,对大多数人来说最容易使用的工具是 kdiff3(直观的菜单、带有底部的自然视图以及上面的提示和下面的结果文本、良好的键盘快捷键 - Ctrl-1/Ctrl- 2/Ctrl-3 从第一个/第二个/第三个窗口中选择 sn-p,Ctrl-箭头从冲突跳转到冲突)。只需安装此程序并在合并工具配置中给予最高优先级(设置
[merge-tools]
kdiff3.priority=1000
)。
一般来说:无论您使用哪种工具,它都会向您显示文件的冲突版本,并希望您创建最终版本。
【讨论】: