Eskil – a GUI front end to diff
eskil.tcl.tk
eskil.tcl.tk
- work well with longer files and long lines (i don't know why many of them are very slow on larger files)
- have line wrap option (quite unusual it seems)
- have diff ignoring whitespaces (you would be surprised that not all diff guis support this)
- the best would be to use the same algo that "git diff" does
- if not then any other that works on character-level.
Of course you may use the vanilla git diff, which is really great (even outside of git repositories), but it is not as handy as GUI sometimes.
The closest GUI was meld, but it's not perfect either... macvim with some diff plugin was also good, but not perfect.
+ eskill has a good set of diff algorithms, char level, word level, etc.
- lacks line wrapping
- a bit sluggish (but it's not that bad)
Would recommend trying.
> Matches similar lines within a changed block to better show changed lines that are adjacent to added/removed lines.
From my work with both meld and kdiff3, I don't think either of these do this or do this very well.
But the main advantage is that it presents diffs the way I like it, naturally since I wrote it ;-)
See also eskil for an extended version of tkdiff.
Eskil is an updated version of tkdiff (still pure tcl) that includes:
... features ...
I highly recommend eskil over tkdiff. tjk
I must be lacking some context, so why not have a single program? Is Eskil that program and tkdiff obsolete?Or, I do not know how to make diff do it well - for example, show added similar "paragraph" in better context. If I have a for loop and add an identical for loop after current one, diff will typically show the new one inserted in between the first part of the existing for loop and the last line of the existing for loop. The perforce diff client seems to get this right and shows the new for loop inserted after the current one.
Aside from that, what I miss in some GUI diff clients is the way vimdiff works. By default, vimdiff collapses the similar areas and shows only the diff parts noncollapsed. This is very useful when I am looking at a diff of a large file and the diff portions are far apart. It helps get a quick overview of the differences in the entire file.