Re: Bug with git-config includeIf
On Tue, Apr 11, 2023 at 9:32 AM Matthias Beyer <mail@beyermatthias.de> wrote:
Show 35 quoted lines
>
> Hi,
>
> please keep me in CC when replying, I am not subscribed.
>
> I experience the following (seemingly) bug in my git setup:
>
> I have three files for my git configuration:
>
> * ~/.gitconfig -> ~/config/git/gitconfig
> * ~/config/git/gitconfig_private
> * ~/config/git/gitconfig_work
>
> The gitconfig_private sets my email address to this very email address, the
> gitconfig_work sets it to me work email address.
>
> The gitconfig file has a `includeIf` directive:
>
> ```
> [include]
> path = ~/config/git/gitconfig_private
>
> [includeIf "gitdir:~/dev/work/"]
> path = ~/config/git/gitconfig_work
> ```
>
> That means, from my understanding, that all git repositories in ~/dev/work
> should now have the work-related email address set.
>
> If I go to ~/dev/work/somerepo and `git config --get user.email` it indeed
> shows the expected email address.
>
> But if I go to a subdirectory in that repository, the very same command shows
> the private email address, and commits get written with that private email
> address.
One thing that can help a lot to debug is to run `git config --list
--show-scope` from this subdirectory where your config is misbehaving
- that will help you understand which of _private or _work is being
included in the parse, in which order. It could be there is another
stray config overwriting here.
Show 7 quoted lines
>
> Did I miss something obvious or did I discover a bug?
>
> git: 2.38.4
>
> Best,
> Matthias