Thread (14 messages) 14 messages, 3 authors, 2016-06-15

Re: [PATCH v1] config: add '--sources' option to print the source of a config value

From: Sebastian Schuberth <hidden>
Date: 2016-06-15 23:08:07

On 2/5/2016 12:20, Jeff King wrote:
Hmm. I had originally envisioned this only being used with "--list", but
I guess it makes sense to say "--sources --get" to show where the value
for a particular option is coming from.
Being able to use "--sources --get" is a feature that I'd definitely 
like to see, too.
I'm not sure returning here is the best idea. We won't have a config
filename if we are reading from "-c", but if we return early from this
function, it parses differently than every other line. E.g., with your
patch, if I do:

   git config -c foo.bar=true config --sources --list

I'll get:

   /home/peff/.gitconfig <tab> user.name=Jeff King
   /home/peff/.gitconfig <tab> user.email=peff@peff.net
   ...etc...
   foo.bar=true

If somebody is parsing this as a tab-delimited list, then instead of the
source field for that line being empty, it is missing (and it looks like
"foo.bar=true" is the source file). I think it would be more friendly to
consumers of the output to have a blank (i.e., set "fn" to the empty
string and continue in the function).
Or to come up with a special string to denote config values specified on 
the command line. Maybe somehting like

     <command line> <tab> foo.bar=true

I acknowledge that "<command line>" would be a valid filename on some 
filesystems, but I think the risk is rather low that someone would 
actually be using that name for a Git config file.

Regards,
Sebastian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help