Subject: Re: [PATCH 1/1] git-config: git-config --list fixed when GIT_CONFIG value starts with ~/

From: Jeff King <[email-masked]>
Date: Fri, 14 Nov 2014 15:04:20 -0500

On Sat, Nov 15, 2014 at 01:38:36AM +0600, Alex Kuleshov wrote:

> > Yeah, I'd agree it is a little unexpected to expand here. The "~" is
> > mostly a shell thing, and doing:
> >
> >   GIT_CONFIG=~/.gitconfig git config --list
> >
> > from the shell generally works, because the shell will expand the "~"
> > before it even hits git. If you're not using a shell to set the
> > variable, you probably should be pre-expanding it yourself.
> 
> Yes, you're right here, but i put GIT_CONFIG=~/.gitconfig to my .bashrc
> and it doesn't work so.

Weird. It seems to work fine for me (though I admit I only did a pretty
cursory test).

> > Probably the right place would be the if/else chain around
> > builtin/config.c:514, where we convert a relative path into an absolute
> > one. But I'm not convinced it's a good thing to be doing in the first
> > place.
> >
> What if we'll put path expanding right after getting value of file path,
> after given_config_source.file = getenv(CONFIG_ENVIRONMENT); at 451?

That is a good place to put it if you want to impact $GIT_CONFIG but not
"--file". I am not sure if that is sensible. But then, I am not sure
that I am convinced that we should be making any change at all.

-Peff