Expanding Includes in .gitignore
- From
- Aaron Pelly <aaron@pelly.co>
- Date
- Oct 27, 2016, 00:22 UTC
- Message-ID
- <80919456-7563-2c16-ba23-ce4fcc2777de@pelly.co>
I want a feature. It may be a bad-idea(tm). Advice appreciated.
I want git to be able to include, in its gitignore files, sub-files of ignores or have it understand a directory of ignore files. Or both.
The use case for this is where I did not write my own rules, but I want to keep them updated. https://github.com/github/gitignore is a damn good resource, but I want to pull it and include relevant bits project by project and/or system wide. I don't want to have to update many projects manually if that, or any other, repo changes.
A very brief look at dir.c would indicate that a recursive call from add_excludes to itself when it parses some sort of include tag would do it within a file. I'm sure it'd be pretty straight forward to hook into something in dir.c to parse directories too.
I'm thinking something like ". path/to/include/file" in an ignore file, and/or creating .gitignore.d and/or allowing $HOME/.config/git/ignore and $GIT_DIR/info/exclude to be directories. Or some sane and consistent mixture of these things.
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.
There is also the issue of malicious/accidental recursion which I haven't thought about deeply either.
I would like to know the desirability/practicality/stupidity of such a feature as I believe it is within my skillset to implement it.