Re: [RFC] Identify where a Git config is defined
- From
Jeff King <peff@peff.net>
- Date
- Feb 2, 2016, 10:15 UTC
- Message-ID
- <20160202101551.GA17349@sigill.intra.peff.net>
- In-Reply-To
- <3226E251-73F9-4410-84DE-49C8FFAD92EB@gmail.com>
On Tue, Feb 02, 2016 at 10:27:06AM +0100, Lars Schneider wrote:
Show 6 quoted lines
> Using "git config --list" shows me all configs but sometimes I have a > hard time to figure out where a certain config is defined. This is > especially true on Windows as I found the system config in various > places. I wonder if other people would find it useful to enable > something like "git config --list --print-source" where every config > value is printed with the file where it originates from.
We discussed this exact thing a while ago, and it looks like I started on a patch, but didn't pursue it much further. There's some discussion in there if you are interested in designing such a feature:
http://thread.gmane.org/gmane.comp.version-control.git/190027/focus=190267
It looks like I tweaked it at some point, and I've been carrying this in my tree (rebasing forward and using it in my normal build):
git fetch git://github.com/peff/git jk/config-sources
Feel free to use it as a starting point if that's helpful. I don't recall offhand how close it is to ready.
> If I read the source correctly this would mean I would need to change > "config_fn_t" to pass not only key and value but also the config > source file in addition. Since "config_fn_t" is used in many places > this would be a big change that probably is not worth the effort?!
There's a global struct for the current config file. In the patches above, I just added an accessor function. Hooray for single-threaded programs.
> Alternatively I was thinking about "git config --print-source-files" > to print all config files that Git would parse. This would already > help to find the configs and would probably be a smaller change.
I think the "--sources" option is more useful, because it can show included files, too.
-Peff