Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Eskil – a GUI front end to diff (tcl.tk)
76 points by networked on Aug 6, 2016 | hide | past | favorite | 30 comments


I was recently looking for a fast diff gui, one that would:

- 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.


Ok, checked this one against my diffs, and here's some observations:

+ 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.


Eskil creator here. Thanks for the + :-) Line wrapping has been on my low priority todo list forever, but since it is so rarely needed in my usage it tends to not happen. Line zoom is enough for the rare circumstances I have long lines. I'll give it some more thought.


Try kdiff3.


I tried it, the GUI is veeery slow for slightly bigger text files. Also it is missing word wrapping. Good luck in diffing some latex files with it...


What are its current or planned advantages to other tools, e.g. Meld?


From the website:

> 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.


Among its less visible advantages, it has a lot of ways to resolve tricky diffs, which comes in handy sometimes. Like manually aligning lines, and applying search/replace filters. Try the built in tutorial to see some of it.

But the main advantage is that it presents diffs the way I like it, naturally since I wrote it ;-)


Fossil diff is the killer feature for me. Thanks for your great work.


I've been using kdiff3 for years (it is also my default git mergetool). I see others use Meld. Ediff (emacs' diff). What are other open source/free tools like that people use?


I like tkdiff and I am wondering why Eskil is not a series of patch on top of tkdiff instead of a different program. In fact, http://wiki.tcl.tk/3773 says:

    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?


Eskil is a completely unrelated to tkdiff. The only relation is that they both are written in Tcl/Tk. Don't know why the wiki says what it says.


This tool looks interesting from the screenshots in the website. I wonder if some things that diff doesn't do well are handled separately by this tool.

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.


Meld has become flaky in recent months (years?) after the switch to GTK3. Scrolling often gets 'stuck', mercurial support has regressions and performance is much slower on newer hardware than I remember it being on something barebones. I'm definitely looking at Eskill as an alternative. A graphical diff is just one of those tools I can't live without.


Not so great on Mac OS X. For remote diffs over SSH I don't mind vimdiff to be honest, but sometimes I just want a graphical diff locally. I miss meld from GNU/Linux and can't bring myself to brew install it because GTK on Mac OS X is ugh.


Just to be sure: you're aware of FileMerge/opendiff? It's installed by default. It's not the greatest, but it's there.


Wow, I didn't know about opendiff. Indeed, I will use that when I need something graphical. Cheers!


Hmm, I don't know what's with meld/etc, but I always prefer MacVim (mvim -d) over FileMerge on mac.


Hopefully the next release will be a bit better on Mac. Tk itself has seen a lot of improvements on Mac lately, and I hope to get that in sync.



Ouch, Kaleidoscope costs $69.99! I don't think I need a graphical diff tool THAT bad. Looks slick, though.


Being vimer, I always fail to see the breakthrough in such news.


Similarly as an Emacs user it seems that all the shiny graphical tools are no better than ediff.


Can it diff remote locations? sftp://user@host/path


No, but that sounds like a useful feature to add. Thanks.


Looks like the visual diff that came with Microsoft SourceSafe.


I'will definitely use it. Tcl/Tk fan.


Out of curiosity, why does it matter what language it's written in? How would that in any way affect one's decision to use or not use it?


Is it better than vimdiff?


vimdiff is just perfect. How can $subj be any better than perfect? That can be only reason why your [effectively unconstructive] comment gets [constructively explained] downvotes.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: