Jeff King <peff@xxxxxxxx> writes: > Also, this special SYMLINK driver assumes you want to treat all symlinks > the same. Which is probably good enough in practice. But if > gitattributes were aware of file modes, it would be nice to be able to > be able to apply multiple criteria (i.e., something besides just a > pathname match) to matching files. And then you could do something like > this in your gitattributes file: > > # all symlinks match this > * is_symlink diff=symlink-diff-driver > # only a symlink that matches this filename will get this > some-particular-symlink is_symlink diff=other-symlink-diff-driver > # and here we can explicitly say that only regular files get this > # treatment > *.pdf is_regular diff=pdf > # and since that's what you want 99% of the time, we can imply > # is_regular, which is backwards compatible and syntactically nicer. > # So this is equivalent to the above > *.pdf diff=pdf > > which is more flexible, and neatly solves the "attributes shouldn't > affect symlinks at all" issue. > > It does feel like overengineering, though. After thinking a bit more, I don't feel this is so much overengineering. Your initial SYMLINK driver proposal was somehow a solution looking for a problem, and now we've found just one problem. So I'd say the SYMLINK driver is overengineering for the potential problem it solves: instead, people would probably prefer a diff.showFinalNewlineForSymlink config option or so --- btw, wasn't there a patch for that recently? OTOH, if the SYMLINK driver is ever used for something other than the "no newline at end of file", I'm pretty sure it will not be general enough. So, to me, the SYMLINK driver is a rather bad compromise between complexity and flexibility. (but the counter-argument "that's a lot of work for very little benefit" still holds...) -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- 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