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

Re: What is XDG_CONFIG_HOME for exactly?

From
RDRobert Dailey <rcdailey.lists@gmail.com>
Date
Mar 15, 2015, 23:59 UTC
Message-ID
<CAHd499CPevdk5E-m2U5rWjiaV+zz74+Ev6hvpeLoieVPb8TFtg@mail.gmail.com>
In-Reply-To
<CAHd499AGHgBECH9t_EtkwLx7VCx3yVnDS27PteF3zF1xSAG8Yg@mail.gmail.com>

Sorry for the continuous updates... it seems I spoke too soon. This works until you CD into a repository, then none of the settings are accessible. So yeah, basically I need to make sure I'm using this as intended... I still don't understand the purpose of the XDG thing.

On Sun, Mar 15, 2015 at 6:50 PM, Robert Dailey <rcdailey.lists@gmail.com> wrote:
Show 42 quoted lines
> As a follow-up, I tested the following in my .bashrc:
>
>
> # Utilize different GIT settings based on platform
> if [[ $OSTYPE == 'msys' || $OSTYPE == 'cygwin' ]]; then
>     echo 'Using WINDOWS specific git settings'
>     export XDG_CONFIG_HOME=.config-windows
> else
>     echo 'Using LINUX specific git settings'
>     export XDG_CONFIG_HOME=.config-linux
> fi
>
>
> This seems to work nicely!! I share my $HOME directory (located in
> dropbox) across all platforms so this helps me keep a consistent
> environment across all my machines with zero effort.
>
> On Sun, Mar 15, 2015 at 6:37 PM, Robert Dailey <rcdailey.lists@gmail.com> wrote:
>> My understanding is that git reads the priority of configuration as follows:
>>
>> 1. <local_repo>/.git/config
>> 2. $HOME/.gitconfig
>> 3. $XDG_CONFIG_HOME/git/config
>> 4. system level git config (not sure exactly where this is; not
>> relevant to me on Windows)
>>
>> I have a .gitconfig in Dropbox that I symlink to my home directory on
>> different platforms. Specifically, I share this gitconfig across
>> Cygwin/msys on Windows and Ubuntu.
>>
>> If I can use XDG_CONFIG_HOME to leverage platform-specific settings,
>> I'd be able to keep platform-agnostic settings in my $HOME/.gitconfig
>> and put platform-specific settings in $XDG_CONFIG_HOME/git/config and
>> simply give XDG_CONFIG_HOME a different name on different platforms.
>>
>> Is this what it was designed for? If not, what would be the best
>> approach for this? I was thinking of contributing a patch that would
>> let you specify the name of your git config in the home directory, but
>> I'm not sure if that is necessary. Something like this:
>>
>> $HOME/$GIT_CONFIG_FILENAME, where GIT_CONFIG_FILENAME defaults to
>> ".gitconfig" if it is not set or empty.
Previous: Robert DaileyNext: Matthieu Moy
Message 3 of 4 in “What is XDG_CONFIG_HOME for exactly?”
  1. Robert DaileyMar 15, 2015
  2. Robert DaileyMar 15, 2015
  3. Robert DaileyMar 15, 2015
  4. Matthieu MoyMar 16, 2015

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.