threads / bug / 45938

Possible bug in includeIf / conditional includes on non git initialised directories

Subject: Possible bug in includeIf / conditional includes on non git initialised directories

## tl;dr

4 messages between May 11, 2017 and May 12, 2017.

replies: 3people: 4as markdown or json

Raphael Stolt· May 11, 2017, 18:53 UTC · lore
Hi there,
I might have stumbled this time over a real bug in includeIf / conditional includes or maybe it's just as intended.
1) Given I have a correct configured includeIf and I’m issuing `git config --show-origin --get user.email` against an directory which hasn’t been `git init`ed I get the user.email configured globally.
2) Given I have a correct configured includeIf and I’m issuing `git config --show-origin --get user.email` against an directory which has been `git init`ed I get the user.email configured conditionally.
For 1) I would probably expect to get the user.email configured conditionally even for a plain directory.

More details see this (http://stackoverflow.com/questions/43919191/git-2-13-conditional-config-on-windows/) Stack Overflow question. Best regards, Raphael Stolt

Sebastian Schuberth· May 11, 2017, 20:31 UTC · re: Raphael Stolt · lore

Re: Possible bug in includeIf / conditional includes on non git initialised directories

On 2017-05-11 20:53, Raphael Stolt wrote:
> I might have stumbled this time over a real bug in includeIf / conditional includes or maybe it's just as intended.
> 1) Given I have a correct configured includeIf and I’m issuing `git config --show-origin --get user.email` against an directory which hasn’t been `git init`ed I get the user.email configured globally.
I don't think that's a bug surprise: The condition in the conditional include is "gitdir:". Before running "git init", it simply *is* no gitdir.
-- 
Sebastian Schuberth
Jeff King· May 11, 2017, 23:43 UTC · re: Sebastian Schuberth · lore

Re: Possible bug in includeIf / conditional includes on non git initialised directories

On Thu, May 11, 2017 at 10:31:14PM +0200, Sebastian Schuberth wrote:
Show 8 quoted lines
> On 2017-05-11 20:53, Raphael Stolt wrote:
> 
> > I might have stumbled this time over a real bug in includeIf / conditional includes or maybe it's just as intended.
> > 1) Given I have a correct configured includeIf and I’m issuing `git config --show-origin --get user.email` against an directory which hasn’t been `git init`ed I get the user.email configured globally.
> 
> I don't think that's a bug surprise: The condition in the conditional
> include is "gitdir:". Before running "git init", it simply *is* no
> gitdir.

Yeah, I think all is working as intended. A "cwd:" conditional seems like it would be useful, but I think it would have a lot of corner cases. It may change over the course of a program, and you have weirdness with things like "git --git-dir=/some/other/path", where your cwd and the git repository you're looking at are totally unrelated.

-Peff
Ævar Arnfjörð Bjarmason· May 12, 2017, 08:58 UTC · re: Raphael Stolt · lore

Re: Possible bug in includeIf / conditional includes on non git initialised directories

On Thu, May 11, 2017 at 8:53 PM, Raphael Stolt <raphael.stolt@gmail.com> wrote:
Show 10 quoted lines
> Hi there,
>
> I might have stumbled this time over a real bug in includeIf / conditional includes or maybe it's just as intended.
> 1) Given I have a correct configured includeIf and I’m issuing `git config --show-origin --get user.email` against an directory which hasn’t been `git init`ed I get the user.email configured globally.
> 2) Given I have a correct configured includeIf and I’m issuing `git config --show-origin --get user.email` against an directory which has been `git init`ed I get the user.email configured conditionally.
> For 1) I would probably expect to get the user.email configured conditionally even for a plain directory.
>
> More details see this (http://stackoverflow.com/questions/43919191/git-2-13-conditional-config-on-windows/) Stack Overflow question.
> Best regards,
> Raphael Stolt

The "this is how this works" has been covered already by others, but can you elaborate on the use-case, why does it matter for you that "git config" doesn't show your user.email when you have no git dir there, I can't think of a reason for why this would matter since there's no .git there, so there's no way anything can use the config info at that location.

← back to recent threads