Re: check-attr doesn't respect recursive definitions
- From
Jeff King <peff@peff.net>
- Date
- Apr 2, 2013, 16:30 UTC
- Message-ID
- <20130402163034.GA19252@sigill.intra.peff.net>
- In-Reply-To
- <7vtxnogbft.fsf@alter.siamese.dyndns.org>
On Tue, Apr 02, 2013 at 09:11:02AM -0700, Junio C Hamano wrote:
Show 7 quoted lines
> Jeff King <peff@peff.net> writes: > > > Yes, it is the expected behavior, though I cannot offhand think of > > anything that would break if we did apply it recursively. > > Conceptually that breaks our brain. "All files in doc/ directories > are text" and "doc/ directory is text" are two different things, no?
In some systems, yes, but git does not have any notion of "doc/" as an item (after all, we track content in files, not directories), so I do not see what it means to specify a directory except to say "everything under it has this property".
We already treat "foo/" in gitignore this way (i.e., "everything under foo is ignored"). And we treat export-ignore the same way in git-archive.
I agree that saying "Documentation diff=text" is not something I would expect people to do, but what _should_ it do? Recursively applying under the directory seems a sane option. I would not want to paint us into a corner, but I cannot think of any other reasonable thing to do with it (which is why I phrased it as "I cannot think of anything that would break", and not "this is a great idea"; counterpoints are welcome).
I am sympathetic to Jan's issue, though. If git were consistent about applying attributes only to paths, then the repo owner would have written "dir/* export-ignore", not "dir". But it is not, and git-archive does ask for attributes on directories, but without providing a good mechanism for doing those attribute lookups from external programs.
-Peff