Configuration 可以在Mercurial中更改默认的diff工具吗?

Configuration 可以在Mercurial中更改默认的diff工具吗?,configuration,mercurial,diff,Configuration,Mercurial,Diff,每次执行hg diff file.ext时,我都会使用控制台diff应用程序。我想使用Kdiff3或WinMerge(我使用的是Windows) 有没有办法改变这种状况?我在Mercurial文档中找不到引用(我不是说合并!) 我使用Mercurial内置扩展解决了这个问题。。。我只需将以下行添加到Mercurial.ini(在Mercurial文件夹中): 当我想使用kdiff3而不是diff时,我只需要使用: hg vdiff file.ext 使用此配置 [extdiff] cmd.kd

每次执行
hg diff file.ext
时,我都会使用控制台diff应用程序。我想使用Kdiff3或WinMerge(我使用的是Windows)


有没有办法改变这种状况?我在Mercurial文档中找不到引用(我不是说合并!

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

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

hg vdiff file.ext
使用此配置

[extdiff]
cmd.kdiff3 =
我使用此命令查看差异:

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


更多信息。

我几分钟前刚刚遇到这个问题;我刚刚安装了它,并将其路径(默认为c:\program files\kdiff3)添加到我的系统路径e.v。重新启动我的窗口以选择新路径,“hg kdiff3”刚刚工作。正如我的基本“mercurial.ini”文件所示,这允许kdiff3为系统上的所有hg repo工作

[extensions]  
hgext.extdiff =  

[extdiff]  
cmd.kdiff3 =

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

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

[extensions]
extdiff =

[extdiff]
cmd.vimdiff = vimdiff

[alias]
difftool = !for file in $(hg status -n); do hg vimdiff $file; done
或适用于windows:

[alias]
difftool = !FOR /f %F IN ('hg status -nmar') DO hg vimdiff %F

此外,您还可以将选项传递给diff工具,例如,
[extdiff]opts.vdiff=2>/dev/null
此答案(以及下面到目前为止的其他答案)使另一个diff工具可用,但不会更改“默认diff工具”。即。,当您调用
hg diff
,或者更重要的是,当您使用
hg log-p
查看整个变更集时,它不会更改所使用的工具。我很想找到一种方法来真正改变默认值?(例如,在查看分支时,有时能够使用基于单词的diff。)
[alias]
difftool = !FOR /f %F IN ('hg status -nmar') DO hg vimdiff %F