I've refactored the visual diff code on the default branch.  We no
longer use any extdiff code, I've pulled all of the functionality into
visdiff.py so we can work around some warts and improve a few things.
The two largest changes so far are:

1) the visdiff launcher no longer changes directory, so visual diffs
can be launched in-process (no more forking)
2) it uses Mercurial's merge-tools machinary to find diff tools and
their configurations

For example, kdiff3 is configured as:

kdiff3.priority=-1
kdiff3.args=--auto --L1 base --L2 local --L3 other $base $local $other
-o $output
kdiff3.regkey=Software\KDiff3
kdiff3.regappend=\kdiff3.exe
kdiff3.fixeol=True
kdiff3.gui=True
kdiff3.diff3args=--L1 base --L2 local --L3 other $parent1 $child $parent2

Further changes I'm contemplating:

* Making temporary files read/only when they are static views of history
* Patching Mercurial to expand environment variables in
tool.executable (issue #166)
* Add support for tool.directorydiffs = True, which would disable the
diff window automatically if that tool was preferred.
* Packaging MSWord diff scripts in the installer
* Add support for diff patterns, as in:

[diff-patterns]
**.doc = worddiff

--
Steve Borho

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Tortoisehg-discuss mailing list
Tortoisehg-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-discuss

Reply via email to