path: root/userdiff.h
diff options
authorJeff King <>2008-10-05 21:43:45 (GMT)
committerJunio C Hamano <>2008-10-18 15:02:55 (GMT)
commit9cb92c390cefd3bf3f71bbda12eb04893c861361 (patch)
treeefa0051207b647a902bb9d7002e05410af303941 /userdiff.h
parent122aa6f9c000d0d286898e2eb7b3504ac6cb9ebd (diff)
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 <> Signed-off-by: Shawn O. Pearce <>
Diffstat (limited to 'userdiff.h')
1 files changed, 1 insertions, 0 deletions
diff --git a/userdiff.h b/userdiff.h
index 1c1eb04..f29c18f 100644
--- a/userdiff.h
+++ b/userdiff.h
@@ -11,6 +11,7 @@ struct userdiff_driver {
const char *external;
int binary;
struct userdiff_funcname funcname;
+ const char *textconv;
int userdiff_config_basic(const char *k, const char *v);