Re: Bug with git-config includeIf
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 11, 2023, 16:58 UTC
- Message-ID
- <xmqqr0sq9x0f.fsf@gitster.g>
- In-Reply-To
- <3352350.44csPzL39Z@takeshi>
Matthias Beyer <mail@beyermatthias.de> writes:
Show 9 quoted lines
> [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.
The pattern given to "gitdir:" ends with "/" and implicitly "**" is added after it. If "~/dev/work/somerepo" is a repository, going there and "git rev-parse --git-dir" would say ".git" or "~/dev/work/somerepo/.git", then the includeIf should trigger.
> 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.
I use exactly the same configuration (not for working on this project, though), and your symptom does not reproduce for me, which puzzles me. I go to an equivelent of your ~/dev/work/somerepo/subdir and "git rev-parse --git-dir" would still report an equivalent of your "~/dev/work/somerepo/.git", and my "git config --show-origin user.name" does point at the value of "includeIf.gitdir:~/dev/work/.path".
I wonder what the difference of the set-up is.
My ~/dev/work/somerepo/.git equivalent is a directory. Perhas yours is not? That should not cause any difference and it is merely a guess in the dark.