git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Overriding ~/.gitconfig using GIT_CONFIG

From
RPRichard Purdie <rpurdie@rpsys.net>
Date
Aug 12, 2011, 20:44 UTC
Message-ID
<1313181853.14274.535.camel@rex>
In-Reply-To
<7vmxfemnc4.fsf@alter.siamese.dyndns.org>
On Fri, 2011-08-12 at 12:39 -0700, Junio C Hamano wrote:
Show 55 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
> 
> > Richard Purdie <rpurdie@rpsys.net> writes:
> >
> >> Looking through the manuals/code, it suggests I should be able to do:
> >>
> >> GIT_CONFIG=/dev/null git XXX
> >>
> >> and all should work happily. It doesn't though. As an example, with a
> >> ~/.gitconfig, "GIT_CONFIG=/dev/null git fetch --all" is clearly
> >> accessing the file in ~ and then acting upon it.
> >
> > If the manual says the above is expected for any value of XXX, then that
> > is a bug in the manual since mid 2008, I think.
> >
> > See dc87183 (Only use GIT_CONFIG in "git config", not other programs,
> > 2008-06-30).
> >
> > I _think_ these days a workaround to force a known config is to set HOME
> > to a value that has a known .gitconfig (or no such file), and decline
> > usage of /etc/git.config by exporting GIT_CONFIG_NOSYSTEM.
> 
> Side note. Here is what dc87183 says:
> 
> commit dc87183189b54441e315d35d48983d80ab085299
> Author: Daniel Barkalow <barkalow@iabervon.org>
> Date:   Mon Jun 30 03:37:47 2008 -0400
> 
>     Only use GIT_CONFIG in "git config", not other programs
>     
>     For everything other than using "git config" to read or write a
>     git-style config file that isn't the current repo's config file,
>     GIT_CONFIG was actively detrimental. Rather than argue over which
>     programs are important enough to have work anyway, just fix all of
>     them at the root.
>     
>     Also removes GIT_LOCAL_CONFIG, which would only be useful for programs
>     that do want to use global git-specific config, but not the repo's own
>     git-specific config, and want to use some other, presumably
>     git-specific config. Despite being documented, I can't find any sign that
>     it was ever used.
>     
>     Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
>     Signed-off-by: Junio C Hamano <gitster@pobox.com>
> 
> It clearly explains the reason why LOCAL_CONFIG was removed (the reader
> does not have to agree with "I can't find any sign that it was ever used",
> though), but I cannot read from the first paragraph the reason why it was
> felt necessary not to honor GIT_CONFIG in other programs, i.e. "was
> actively detrimental" is not backed by any example in the paragraph. I can
> sort of sense from "Rather than argue over..." that there may have been a
> discussion on the list, and reading the archive from that timeframe may
> reveal why many felt it was not a good idea.
> 
> Daniel, do you recall the context?

I went digging and this looks like as good a summary as any of the posts around that time:

http://marc.info/?l=git&m=121476432303314&w=2

It sounds like if you specified GIT_CONFIG when making a clone it would end up writing the config file specified rather than .git/config.

My problem isn't that I want to specify a specific .gitconfig file, I just need it to ignore the one in $HOME. I'm happy for the .git/config file to be used, in fact I need it to be.

I noticed 8f323c00dd3c9b396b01a1aeea74f7dfd061bb7f was committed which removed GIT_CONFIG_NOGLOBAL support which is the other way to address the problem. Could we add that back?

I appreciate I can set $HOME to something but that means creating an empty directory to point at and feels rather like a work around rather than a solution.

Cheers,
Richard
-- 
Linux Foundation
http://www.yoctoproject.org/
Previous: Junio C HamanoNext: David Aguilar
Message 4 of 12 in “Overriding ~/.gitconfig using GIT_CONFIG”
  1. Richard PurdieAug 12, 2011
  2. Junio C HamanoAug 12, 2011
  3. Junio C HamanoAug 12, 2011
  4. Richard PurdieAug 12, 2011
  5. David AguilarAug 28, 2011
  6. Richard PurdieAug 29, 2011
  7. David AguilarAug 30, 2011
  8. Richard PurdieAug 30, 2011
  9. Jeff KingAug 30, 2011
  10. Richard PurdieAug 30, 2011
  11. Jeff KingAug 30, 2011
  12. Richard PurdieSep 5, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.