Eskil can compare versions in revision control systems. Currently RCS, CVS, Git, Fossil, Mercurial, Bazaar, Subversion, Perforce and ClearCase are supported. If you specify only one file on the command line to Eskil, it will automatically detect if the file is under revision control and enter revision control mode. By default the local file is compared against the latest checked in version. This is for the common case when you just want to know what you have changed before checking in. You can use the -r option to select which versions to compare. It works like it does in "cvs diff". Examples:
eskil file.txtCompare file.txt with the latest checked in version.
eskil -r rev file.txtCompare file.txt with the specified version.
eskil -r rev1 -r rev2 file.txtCompare the two revisions. This does not involve the local copy of file.txt. The -r options are also available in the GUI in the "Rev 1" and "Rev 2" fields.
hg diff | eskil -
git diff -p --diff-filter=M master | eskil -
eskil -preview
hg diff | eskil -If file names are given after -review, only the listed files are included. If supported, the Commit button will be enabled allowing the viewed differences to be committed.
git config --global merge.tool eskil
git config --global mergetool.eskil.cmd 'eskil -fine -a $BASE -o $MERGED $REMOTE $LOCAL'
git config --global diff.tool eskil
git config --global difftool.eskil.cmd 'eskil $LOCAL $REMOTE'
fossil settings gmerge-command 'eskil -fine -a "%baseline" "%merge" "%original" -o "%output"' -global
-r 5: Version 5 in current stream.
-r .: Latest version in current stream.
-r -1: Second to last version in current stream.
-r /full/path/stream/4: The identified version.
-r /full/path/stream: Latest version in that stream.
-r ../5: Version in parent stream.
-r ..: Latest in parent stream.
-r stream/5: Version in stream, anywhere in tree.
-r stream: Latest in stream, anywhere in tree.