git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Frans Englich <fenglich@fastmail.fm>
Cc: git@vger.kernel.org
Subject: Re: Bug report: .gitattributes: -diff Unset causes files to be reported as binaries
Date: Thu, 2 Jul 2009 01:35:34 -0400	[thread overview]
Message-ID: <20090702053534.GA13255@sigio.peff.net> (raw)
In-Reply-To: <200907011208.35397.fenglich@fastmail.fm>

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:

  Set:
    file.txt diff
  Unset:
    file.txt -diff
  Set to a value:
    file.txt diff=foo
  Unspecified:
    file.txt

So the word "Unset" is unnecessary in "-diff Unset" (and syntactically
means "set the attribute named "Unset", not any sort of modifier on the
diff attribute). This is described in the first section of "git help
attributes".

All of that being said, your example does end up, in fact, making the
diff attribute "unset" for you (because it uses "-diff"). And the effect
of doing so is to mark the file as binary (i.e., not to be diffed). From
"git help attributes", section "Generating diff text":

  The attribute `diff` affects how 'git' generates diffs for particular
  files. It can tell git whether to generate a textual patch for the
  path or to treat the path as a binary file.
  [...]
  Unset
      A path to which the diff attribute is unset will generate Binary
      files differ.

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?

-Peff

  reply	other threads:[~2009-07-02  5:35 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-01 10:08 Bug report: .gitattributes: -diff Unset causes files to be reported as binaries Frans Englich
2009-07-02  5:35 ` Jeff King [this message]
2009-07-02  8:14   ` Frans Englich
2009-07-02 11:12     ` Paolo Bonzini
2009-07-02 11:29       ` Frans Englich
2009-07-02 11:29         ` Paolo Bonzini
2009-07-02 17:05       ` Jeff King
2009-07-02 11:59     ` Jakub Narebski
2009-07-02 17:04     ` Jeff King
2009-07-02 14:29 ` René Scharfe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090702053534.GA13255@sigio.peff.net \
    --to=peff@peff.net \
    --cc=fenglich@fastmail.fm \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).