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

git-checkout doesn't seem to respect config from include.path

From
Greg Hurrell <greg@hurrell.net>
Date
Feb 2, 2022, 16:04 UTC
Message-ID
<ee1dd453-e698-440a-911b-d14389e33715@beta.fastmail.com>
Hi,

Not sure if this is confined specifically to `git-checkout`, but that's the command I noticed the issue with:

With the release of the v2.35.0 and the "zdiff3" setting for "merge.conflictStyle", I find myself wanting to use "zdiff3" on machines running the new version, and falling back to "diff3" on machines with an older version.

To this end, I have a ~/.gitconfig that contains:
    [merge]
    	conflictStyle = zdiff3
    [include]
    	path = ~/.gitconfig.local

The idea is that I can use the same `~/.gitconfig` on every machine I use, but on machines that only have an older Git version, I drop in a ~/.gitconfig.local with overrides like this:

    [merge]
    	conflictStyle = diff3

`git config --get merge.conflictStyle` correctly reports that my setting is "diff3" on such machines, and `git config --get-all merge.conflictStyle` shows:

    diff3
    zdiff3

In other words, it knows that I have multiple values set, but it uses a last-one-wins policy.

However, when I try to run a command like `git checkout -b something`, Git dies with:

    fatal: unknown style 'zdiff3' given for 'merge.conflictstyle'

So, it looks like something in `git-checkout`'s option processing is causing it to disregard the override set via "include.path". In fact, it even disregards a value passed in with `-c` like this:

    git -c merge.conflictStyle=diff3 checkout -b something

Does this sound like a bug, or are my expectations off? I'd be happy to look into fixing this, but first would like to know whether it is expected behavior.

Cheers, Greg

Next: brian m. carlson
Message 1 of 10 in “git-checkout doesn't seem to respect config from include.path”
  1. Greg HurrellFeb 2, 2022
  2. brian m. carlsonFeb 2, 2022
  3. Greg HurrellFeb 3, 2022
  4. Phillip WoodFeb 3, 2022
  5. Greg HurrellFeb 3, 2022
  6. Greg HurrellFeb 3, 2022
  7. Phillip WoodFeb 7, 2022
  8. Junio C HamanoFeb 3, 2022
  9. Phillip WoodFeb 7, 2022
  10. Junio C HamanoFeb 7, 2022

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.