Skip to content

Commit

Permalink
docs: explain diff.*.binary option
Browse files Browse the repository at this point in the history
This was added long ago as part of the userdiff refactoring
for textconv, as internally it made the code simpler and
cleaner. However, there was never a concrete use case for
actually using the config variable.

Now that Matthieu Moy has provided such a use case, it's
easy to explain it using his example.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Jan 10, 2011
1 parent cb198b3 commit ab43561
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions Documentation/gitattributes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,39 @@ should generate it separately and send it as a comment _in
addition to_ the usual binary diff that you might send.


Marking files as binary
^^^^^^^^^^^^^^^^^^^^^^^

Git usually guesses correctly whether a blob contains text or binary
data by examining the beginning of the contents. However, sometimes you
may want to override its decision, either because a blob contains binary
data later in the file, or because the content, while technically
composed of text characters, is opaque to a human reader. For example,
many postscript files contain only ascii characters, but produce noisy
and meaningless diffs.

The simplest way to mark a file as binary is to unset the diff
attribute in the `.gitattributes` file:

------------------------
*.ps -diff
------------------------

This will cause git to generate `Binary files differ` (or a binary
patch, if binary patches are enabled) instead of a regular diff.

However, one may also want to specify other diff driver attributes. For
example, you might want to use `textconv` to convert postscript files to
an ascii representation for human viewing, but otherwise treat them as
binary files. You cannot specify both `-diff` and `diff=ps` attributes.
The solution is to use the `diff.*.binary` config option:

------------------------
[diff "ps"]
textconv = ps2ascii
binary = true
------------------------

Performing a three-way merge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down

0 comments on commit ab43561

Please sign in to comment.