Subject: Re: Bug report: .gitattributes: -diff Unset causes files to be reported as binaries

From: Frans Englich <[email-masked]>
Date: Thu, 2 Jul 2009 10:14:06 +0200

On Thursday 02 July 2009 07:35:34 Jeff King wrote:
> On Wed, Jul 01, 2009 at 12:08:35PM +0200, Frans Englich wrote:
> > Applying -diff Unset to a file using .gittattributes causes "git diff"
> > to state that the file is a binary even though it isn't, or have been
> > instructed to be treated as one. See attached script for reproducing.
>
> I think you are a little confused by the syntax. Each line of the
> gitattributes file has a filename pattern and a set of attributes. Each
> attribute is either set, unset, set to a value, or unspecified. For your
> example (file.txt and the "diff" attribute), they look like:

Perhaps that should be considered another bug; that invalid syntax is 
accepted, instead of being communicated to the user.

[...]
> So as far as I can see, git is behaving exactly as it is supposed to.
> Maybe you can be more specific about what effect you were trying to
> achieve by setting gitattributes in the first place?

To exclude it in diffs, such as from `git show`. Take the case where you have 
a grammar file for a parser and generate a source file from it(or any similar 
scenario); the diff for the generated source file is not of interest and is 
just noisy when read as part of a patch. This applies to all kinds of 
generated files. However, this doesn't mean that the file should be treated 
as a binary, and what practicalities that implies.

If -diff affects whether a file is treated as a binary, as opposed whether 
it's diff'ed, it would imo make sense to call it -binary.

Cheers,

		Frans