Re: Expanding Includes in .gitignore
- From
- Aaron Pelly <aaron@pelly.co>
- Date
- Oct 27, 2016, 20:28 UTC
- Message-ID
- <b20b458c-440d-df09-d2c7-e510ac20492c@pelly.co>
- In-Reply-To
- <20161027105026.e752znq5jv5a6xea@sigill.intra.peff.net>
On 27/10/16 23:50, Jeff King wrote:
> I'd shy away from an actual include directive, as it raises a lot of > complications:
I'm leaning that way now too.
Show 6 quoted lines
> - we parse possibly-hostile .gitignore files from cloned repositories. > What happens when I include ask to include /etc/passwd? Probably > nothing, but there are setups where it might matter (e.g., something > like Travis that auto-builds untrusted repositories, and you could > potentially leak the contents of files via error messages). It's > nice to avoid the issue entirely.
I understand the issue.
It's not obvious to me how using a .d solves this problem though.
> - finding a backwards-compatible syntax
using .d directories solves this nicely in my opinion
> Whereas letting any of the user- or repo-level exclude files be a > directory, and simply reading all of the files inside, seems simple and > obvious.
Apart from backwards compatibility, unless there's something I'm missing.
> If you go that route, it probably makes sense to teach > gitattributes the same trick.
Understood. I'll keep that in mind.
Show 11 quoted lines
>> In the case of a directory the plan would be to add links to files >> stored/sourced elsewhere. This does pose a precedence question which I >> haven't thought about yet, but probably makes it too hard for the >> limited value it brings. > > I think the normal behavior in such "foo.d" directory is to just sort > the contents lexically and read them in order, as if they were all > concatenated together, and with no recursion. I.e., behave "as if" the > user had run "cat $dir/*". > > That lets you handle precedence via the filenames (or symlink names).
That was my thinking at first, but I didn't want to bias the discussion.
> It > can't handle all cases (some items in "00foo" want precedence over "01bar" > and vice versa), but I don't think there's an easy solution. That's a > good sign that one or more of the files should be broken up.
I've been burned by this myself by packages interfering with each other in /etc/sysctl.d
Could we put this down to caveat emptor? I think this sorting should be intuitive to most people these days, and simple to document and comprehend.