===none What: eskil Where: http://eskil.tcl.tk/ Description: Eskil is a GUI frontend to diff. It supports several version control systems. It also does directory diff, conflict merge and more. Currently at version 2.6.2. Updated: 06/2012 Contact: peter dot spjuth at gmail dot com === [http://eskil.tcl.tk/index.html/doc/trunk/htdocs/eskil1.png] [http://eskil.tcl.tk/index.html/doc/trunk/htdocs/eskil2.png] [http://eskil.tcl.tk/index.html/doc/trunk/htdocs/eskil3.png] By [Peter Spjuth] A similar but unrelated application is [tkdiff]. ---- **Revision Control Support** Several revision control systems are supported for displaying differences between file revisions. When comparing uncommited changes to latest version, you can commit directly from Eskil (in some systems). Currently [Fossil], [Git], [Subversion], [RCS], [CVS], [Bazaar], [Mercurial], ClearCase and Perforce are supported. ====== eskil eskil -r 45ef34 -r 6783ef eskil -review eskil -review ... ====== ---- **Patch view** Eskil can display a patch, either from a file, from stdin, pasted from clipboard or generated from Revision Control Support. ====== eskil -patch someother | eskil - git diff -p --diff-filter=M master | eskil - fossil diff -r trunk | eskil -' eskil -review ====== ---- **Directory Diff** Directory comparison is supported. Eskil is [starkit] aware and will allow you to compare starkits/starpacks or, by comparing one to itself, browse kits. The kit needs to be either mentioned on the command line or called *.kit for it to work. ---- **Conflict resolution** You can resolve merge conflicts using Eskil, including full 3-way merge. It can pick up conflict marks as typically left by revision control systems' merge. ====== eskil -conflict eskil -a ====== ---- **Comments about eskil** [LV] 2009 Oct 10 How can I configure eskil so that it does not display lines that are identical in the two files? [Peter Spjuth]: Zero context is supported as of version 2.5. [LV] 2007 Aug 06 Observations regarding eskil... When I first attempted to invoke eskil, I got the following: $ tclkit eskil22.kit extra characters after close-brace while executing "return [uplevel 1 [list [namespace origin mcunknown] $Locale $src {*}$args]] " (procedure "mc" line 24) invoked from within "mc $lab" (procedure "tk::MessageBox" line 79) invoked from within "tk::MessageBox {*}$args" (procedure "tk_messageBox" line 2) invoked from within "tk_messageBox -icon error -message $msg -title "Fatal error"" (procedure "panic" line 4) invoked from within "panic $::errorInfo" (procedure "starkit::header" line 10) invoked from within "starkit::header mk4 -readonly" (file "eskil22.kit" line 5) $ sdx.kit version /projects/sprs_lwv/tcl85/bin/tclkit 2005/09/27 03:31:11 54267-20834 /projects/sprs_lwv/tcl85/bin/tclkit $ /projects/sprs_lwv/tcl85/bin/tclkit % info patchlevel 8.5a4 After a comment by Peter, I began to wonder if perhaps it was a tclkit error, rather than an eskil, so I tried eskil with an older tclkit and that worked just fine. I then tried to use eskil with ActiveTcl 8.5's [base-tk] (which is, for a subset of [starkit]s, a substitute) and found another issue. This time, I found that eskil includes only [snit] version 1 - but the snit toplevel, when it sees it is running under Tcl/Tk 8.5, attempts to use snit version 2. Because that isn't included in eskil, a fatal error is generated. Just a head's up if someone else runs into this problem. The current solution is either to update the snit in eskil to include both versions, or to go download an older version of a [tclkit]. This should work in Eskil 2.3. ---- Anyone have a comparison of eskil versus http://www.winmerge.org/ ? While winmerge isn't written in Tcl, it has been recommended to me as a very good tool. I'm just curious how functionality matches. [Peter Spjuth]: I haven't used winmerge but a quick glance shows they are roughly equal. Neither of them has a full 3-way merge, but Eskil has a separate merge window which I find friendlier. I don't see anything like Eskil's hierarchical directory diff in winmerge but I guess they must have something similar. I'm quite sure Eskil is alone in supporting comparison of [starkit]s and [starpack]s though ;-) [MHo] 2009-10-30: Just tried the newest ''winmerge''. Unfortunally, it doesn't load. Some external dependencies don't resolve at my PC (VC redist 8.x). I hate those tools, which require me to load six new different runtimes each time I update... ---- [LV] From what I can tell, eskil 2.4 requires a tclkit with themed tk in it - probably Tk 8.5. <> Application | Dev. Tools