是否可以更改Mercurial中的默认差异工具?

问题描述:

每次我做'hg diff file.ext'我最终都会使用控制台diff应用程序。有没有办法改变这种情况?我无法在Mercurial文档中找到参考(我不是在说合并!)。我想使用Kdiff3或WinMerge(我正在使用Windows)。是否可以更改Mercurial中的默认差异工具?

我该使用水银内置的扩展解决了......我只需要添加以下行Mercurial.ini(水银上的文件夹):

[extensions] 
hgext.extdiff= 

[extdiff] 
cmd.vdiff = kdiff3 

当我想用kdiff3而不是差异的,我只需要使用:

hg vdiff file.ext 
+2

此外,您可以将选项传递给difftool,例如。 `[extdiff] opts.vdiff = 2>/dev/null` – ACyclic 2012-08-07 10:43:44

有了这个配置

[extdiff] 
cmd.kdiff3 = 

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

hg kdiff 

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

更多信息here

我刚刚在几分钟前遇到了这个问题;我刚刚安装了它,并将其路径(默认位于c:\ program files \ kdiff3)添加到我的系统PATH e.v.重新启动了我的窗口,选择了新的路径,“hg kdiff3”刚刚工作。事实证明,以下文件位于我的“mercurial.ini”文件中,这允许kdiff3适用于系统上的所有hg repos。

[extensions] 
hgext.extdiff = 

[extdiff] 
cmd.kdiff3 = 

[merge-tools] 
kdiff3.args = $base $local $other -o $output 

如果您正在寻找类似git difftool,你不需要输入文件名,并请参见diff所有修改过的文件,这些添加到您的~/.hgrc,并运行hg difftool

[extensions] 
extdiff = 

[extdiff] 
cmd.vimdiff = vimdiff 

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