Subject: Re: [PATCH v2] config: introduce an Operating System-specific `includeIf` condition

From: Junio C Hamano <[email-masked]>
Date: Wed, 19 Apr 2023 09:07:13 -0700

Johannes Schindelin <[email-masked]> writes:

>> > 2. casing (use of `/i`)
>>
>> My preference is to do this case sensitively (in other words, start
>> stupid) and if somebody wants to use "/i", add it later after the
>> dust settles.
>
> I strongly disagree with this. This feature is meant for Git users, who I
> must assume based on my experience would expect the value to be
> case-insensitive. I.e. they would expect both `linux` and `Linux` to
> match. Let's not make this feature harder to use than necessary!

[jc: Read below with 'os' replaced with 'uname-s' or any of your
favorite. This message does not take any position on that part of
the discussion.]

I am OK with the above position, if we make sure that all other
includeIf conditions are compared case insensitively, and if we make
sure there is no existing "/i" includeIf conditions.  Then those who
want to differentiate can later add "/casesensitive" option.

But I do not want to see a system where some of the conditions are
compared case insensitively while some other conditions are compared
case sensitively.  The end-users will then be forced to remember
"the condition 'os' can be spelled in any case permutation, but the
condition 'xyzzy' needs to be spelled in the right case".  It would
not be obvious to end users when they need to use "/i" variant in
such a system.

Unlike 'gitdir' whose value is arbitrarily chosen by the users and
the projects (where folks use both FooBar and foobar and want them
to mean different things), the vocabulary of "os" is limited and I
agree with you that it is very likely for any user to expect that
any case permutations of "linux" would mean the same thing.  But
spelling "windows" and have it match even when the official name of
the system may be "Windows" should be the choice made by the end
user, and the "/i" suffix in "os/i" is a way for them to express it.

You might be able to talk me into adding only "os/i" added without
adding "os", though.  I do not see much point in doing so, other
than that we can say "we do not take any position on what case
permutation is the right and official way to spell the name of each
system".

Thanks.