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

From: Junio C Hamano <[email-masked]>
Date: Mon, 17 Apr 2023 11:46:49 -0700

Samuel Ferencik <[email-masked]> writes:

>>>> Let's introduce a new condition: `os:<uname-s>` where `<uname-s>` is the
>>>> system name, i.e. the output of `uname -s`.
>
> The discussion about https://github.com/gitgitgadget/git/pull/1429 seems to
> have stalled on several points. I'll try to summarise; let's see if we can move
> forward.
>
> (I am the reporter of https://github.com/git-for-windows/git/issues/4125, which
> led to this PR. I am vested in making progress here.)
>
> 1. name of the setting (`os` vs `uname-s` vs `sysname`)

I do not think it is a good idea to squat on too generic a name like
'os', especially when there are multiple layers people will care
about.  But I think the original thread discussed this to death, and
I do not see a point bringing it up again as the first bullet point.

> 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.

> 3. handling Windows (MinGW, WSL)

This comes back to the reason why "os" is a horrible choice.  Is WSL
a Windows?  Is WSL a Linux?  The same question can be asked for Cygwin.

The answer depends on which layer you care about.  The underlying
kernel and system may be Windows, and some characteristics of the
underlying system may seep through the abstraction, but these
systems aim to give user experience of something like GNU/Linux.

And this is not limited to Windows.  There may be similar issue for
systems like PacBSD.  Is it a Linux?  Is it a BSD?

> 6. what's the use-case?

I think that this is the most important question to ask, and from
here, we'd see how #3 above should be resolved (I suspect that you
may want to have at least two layers to allow WSL to be grouped
together with MinGW and Cygwin at one level, and at the same time
allow it to be grouped together with Ubuntu at a different level).
And after we figure that out, we'll have a clear and intuitive
answer to #1.