Mac OS X bundles a rather nice graphical diff viewer (Filemerge.app) with its developer tools. While git-merge knows how to use this as a merge tool, I couldn't find any way to easily use Filemerge as a viewer for the output of git-diff. (http://thread.gmane.org/gmane.comp.version-control.git/58702 discusses the problem, and recommends piping git-diff into kompare. Filemerge unfortunately won't accept diff output on stdin) So I wrote a quick script (below) which does what I need. Of all the available git-diff flags, it only understands "--cached", and up to two commit objects, and no paths, but that's enough for me. Within those constraints, it has the same semantics as git-diff. It's not very nice, but in case anyone else wants this: #!/bin/sh # # Filemerge.app must not already be open before running # this script, or opendiff below will return immediately, # and the TMPDIRs deleted before it gets the chance to read # them. if test $# = 0; then OLD=`git-write-tree` elif test "$1" = --cached; then OLD=HEAD NEW=`git-write-tree` shift fi if test $# -gt 0; then OLD="$1"; shift fi test $# -gt 0 && test -z "$CACHED" && NEW="$1" TMPDIR1=`mktemp -d` git-archive --format=tar $OLD | (cd $TMPDIR1; tar xf -) if test -z "$NEW"; then TMPDIR2=$(git rev-parse --show-cdup) test -z "$cdup" && TMPDIR2=. else TMPDIR2=`mktemp -d` git-archive --format=tar $NEW | (cd $TMPDIR2; tar xf -) fi opendiff $TMPDIR1 $TMPDIR2 | cat rm -rf $TMPDIR1 test ! -z "$NEW" && rm -rf $TMPDIR2 -- Dr. Toby O. H. White Dept. Earth Sciences, Downing Street, Cambridge CB2 3EQ United Kingdom Tel: +44 1223 333464 Fax: +44 1223 333450 Web: http://uszla.me.uk - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html