On Thu, Jan 26, 2012 at 08:51:52AM -0500, Stephen Bash wrote: > > $ cat .gitattributes > > *.pdf filetype=pdf > > $ cat .git/config > > [filetype "pdf"] > > binary = true > > textconv = pdf2txt > > Looking at this purely as a user, what difference/advantage would that bring versus > > $ cat .gitattributes > *.pdf binary=true textconv=pdf2text For "binary", probably not much. But for textconv, it is all about the split between attributes and config, as mentioned below: > To partially answer my own question: one advantage of putting the > filetype information in a config file is it allows system- and > user-wide filetype settings. In my personal experience I've always > handled that information on a per-repository basis, but that doesn't > mean everyone would want to. Right. Setting things system-wide instead of per-repo is one advantage. But more important is that attributes are not per-repo, but rather "per-project". They get committed, and everybody who works on the project shares them. In your example, the gitattributes get committed, and the project is mandating "you _will_ use pdf2text to view diffs of these files". But that may not be appropriate for everybody who clones. Somebody may have a different pdf-to-text converter. Somebody may simply have pdf2txt at a different path, or need different options. Or somebody may want to skip it altogether and use an external diff command, or even just see the files as binary. By splitting the information across the two files, the project gets to say "this file is of type pdf", and then each user gets to decide "how do I want to diff pdf files?" -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html