Code

diff: add filter for converting binary to text
authorJeff King <peff@peff.net>
Sun, 5 Oct 2008 21:43:45 +0000 (17:43 -0400)
committerJunio C Hamano <gitster@pobox.com>
Sat, 18 Oct 2008 15:02:55 +0000 (08:02 -0700)
commit9cb92c390cefd3bf3f71bbda12eb04893c861361
treeefa0051207b647a902bb9d7002e05410af303941
parent122aa6f9c000d0d286898e2eb7b3504ac6cb9ebd
diff: add filter for converting binary to text

When diffing binary files, it is sometimes nice to see the
differences of a canonical text form rather than either a
binary patch or simply "binary files differ."

Until now, the only option for doing this was to define an
external diff command to perform the diff. This was a lot of
work, since the external command needed to take care of
doing the diff itself (including mode changes), and lost the
benefit of git's colorization and other options.

This patch adds a text conversion option, which converts a
file to its canonical format before performing the diff.
This is less flexible than an arbitrary external diff, but
is much less work to set up. For example:

  $ echo '*.jpg diff=exif' >>.gitattributes
  $ git config diff.exif.textconv exiftool
  $ git config diff.exif.binary false

allows one to see jpg diffs represented by the text output
of exiftool.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
diff.c
userdiff.c
userdiff.h