Is possible to change the default diff tool in Mercurial?

Viewed 23712

Every time I do an hg diff file.ext I end up using a console diff application. I would like to use Kdiff3 or WinMerge (I'm using Windows).

Is there a way to change that? I can't find a reference in Mercurial documentation (I'm not talking about merge!).

4 Answers

I've solved this using a Mercurial built-in extension... I just have to add the following lines to Mercurial.ini (on Mercurial folder):

[extensions]
hgext.extdiff=

[extdiff]
cmd.vdiff = kdiff3

When I want to use kdiff3 instead of diff I only have to use:

hg vdiff file.ext

I just had this problem a few minutes ago; I just installed it and added its path (default is at c:\program files\kdiff3) to my system PATH e.v. Restarted my window to pick up the new path, and "hg kdiff3" just worked. As it turns out the following is in my base "mercurial.ini" file, this allows the kdiff3 to work for all hg repos on the system.

[extensions]  
hgext.extdiff =  

[extdiff]  
cmd.kdiff3 =

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