63

每次我这样做时,hg diff file.ext我最终都会使用控制台差异应用程序。我想使用 Kdiff3 或 WinMerge(我使用的是 Windows)。

有没有办法改变它?我在 Mercurial 文档中找不到参考(我不是在谈论合并!)。

4

4 回答 4

70

我已经使用 Mercurial 内置扩展解决了这个问题......我只需将以下行添加到 Mercurial.ini(在 Mercurial 文件夹上):

[extensions]
hgext.extdiff=

[extdiff]
cmd.vdiff = kdiff3

当我想使用 kdiff3 而不是 diff 时,我只需要使用:

hg vdiff file.ext
于 2008-10-27T18:45:54.217 回答
8

有了这个配置

[extdiff]
cmd.kdiff3 =

我使用这个命令来查看差异:

hg kdiff

这显示了一个目录树,其中包含所有已更改的文件。您单击一个文件以查看该文件的差异。您可以在命令中添加文件参数以仅查看一个文件。

更多信息在这里

于 2009-09-18T14:53:50.460 回答
5

如果您正在寻找类似的东西git difftool,您不需要键入文件名并查看所有更改文件的差异,请将这些添加到您的~/.hgrc,然后运行hg difftool​​.

[extensions]
extdiff =

[extdiff]
cmd.vimdiff = vimdiff

[alias]
difftool = !for file in $(hg status -n); do hg vimdiff $file; done

或对于窗户:

[alias]
difftool = !FOR /f %F IN ('hg status -nmar') DO hg vimdiff %F
于 2016-09-07T13:24:01.167 回答
3

几分钟前我刚遇到这个问题;我刚刚安装它并将其路径(默认为 c:\program files\kdiff3)添加到我的系统 PATH ev 重新启动我的窗口以获取新路径,并且“hg kdiff3”刚刚工作。事实证明,以下内容位于我的基本“mercurial.ini”文件中,这允许 kdiff3 为系统上的所有 hg 存储库工作。

[extensions]  
hgext.extdiff =  

[extdiff]  
cmd.kdiff3 =

[merge-tools]  
kdiff3.args = $base $local $other -o $output
于 2010-12-23T17:13:07.733 回答