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

Re: GIT_CONFIG - what's the point?

From
Matthew Persico <matthew.persico@gmail.com>
Date
Apr 3, 2016, 20:11 UTC
Message-ID
<CAL20dLAK953vmqO2E1Aw-4aDOCthJYu+xP=0GUX2DTmajLxi8A@mail.gmail.com>
In-Reply-To
<1459531705-31906-1-git-send-email-szeder@ira.uka.de>
On Fri, Apr 1, 2016 at 1:28 PM, SZEDER Gábor <szeder@ira.uka.de> wrote:
Show 30 quoted lines
>> Let me explain my scenario. I have an nfs mounted home directory. It
>> is used across multiple machines. I use different colored xterms for
>> each machine. But that means that the one set of colors in my one
>> .gitconfig file don't work against all my screen backgrounds. I'm
>> trying to find a way to tune the git colors per login. The ability to
>> set colors in an environment variable (like most UNIX utils support)
>> would be the easiest way to do this. Failing that, I was hoping that
>> by setting GIT_CONFIG per login, I could tune the color schemes with
>> different config files.
>>
>> Since that is not how GIT_CONFIG is used, I have simply decided to
>> squint where necessary, or open up a neutral colored xterm for the
>> diff, regardless of machine.
>>
>> Yes, I could probably do diffs in many other ways, but git diff at the
>> command line is usually the most expedient.
>>
>> Unless I wanted to define a GIT_CONFIG_OVER environment variable upon
>> login, place inside it the appropriate -c<name>=<value> overrides for
>> colors, and then define a bash function git as
>>
>> git () {
>>    $(which git) $GIT_CONFIG_OVER "$@"
>>    return $?
>> }
>>
>> which seems silly.
>
> Yeah, that 'return $?' at the end of the function does indeed seem
> silly :)  (sorry, couldn't resist...)
Part OCD, part OAC. :-)
Show 9 quoted lines
>
> You could use machine-specific config includes instead of that
> GIT_CONFIG_OVER environment variable.  I.e. store machine-specific
> color configuration in ~/.gitcolors.<machine> or something and define
> the shell function as:
>
> git () {
>         command git -c include.path=~/.gitcolors.$HOSTNAME "$@"
> }

BINGO! THAT was the redirection I needed! One thing I was trying to figure out early one was how to put HOSTNAME-based include.path-s in the .gitconfig. So I put them OUTSIDE the .gitconfig like this.

Much obliged. Next time you are in NYC - I owe you a beer!
Show 6 quoted lines
>
> The impact on your .bashrc would be much smaller than with the
> GIT_CONFIG_OVER approach.
> You could even turn this into an alias, if you want.
>
>
-- 
Matthew O. Persico
Previous: SZEDER Gábor
Message 7 of 7 in “GIT_CONFIG - what's the point?”
  1. Matthew PersicoApr 1, 2016
  2. Christian CouderApr 1, 2016
  3. Jeff KingApr 1, 2016
  4. Matthew PersicoApr 1, 2016
  5. Jeff KingApr 1, 2016
  6. SZEDER GáborApr 1, 2016
  7. Matthew PersicoApr 3, 2016

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.