From: <rsbecker@nexbridge.com>
To: "'Johannes Schindelin'" <Johannes.Schindelin@gmx.de>,
"'Junio C Hamano'" <gitster@pobox.com>
Cc: "'Samuel Ferencik'" <sferencik@gmail.com>,
"'Philip Oakley'" <philipoakley@iee.email>,
"'Johannes Schindelin via GitGitGadget'" <gitgitgadget@gmail.com>,
git@vger.kernel.org,
"'Ævar Arnfjörð Bjarmason'" <avarab@gmail.com>,
"'Phillip Wood'" <phillip.wood123@gmail.com>
Subject: RE: [PATCH v2] config: introduce an Operating System-specific `includeIf` condition
Date: Wed, 19 Apr 2023 11:21:58 -0400 [thread overview]
Message-ID: <009c01d972d2$b2bd7680$18386380$@nexbridge.com> (raw)
In-Reply-To: <67a2d12c-6250-c4ee-dd26-fd8ecc71b8bc@gmx.de>
On Wednesday, April 19, 2023 8:23 AM, Johannes Schindelin wrote:
>On Mon, 17 Apr 2023, Junio C Hamano wrote:
>
>> Samuel Ferencik <sferencik@gmail.com> 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.
>
>Given what you said about "Operating System", i.e. that both "Ubuntu" and
"Linux"
>should be able to match at the same time, I kind of concur, but in the
other direction:
>rather than forcing the current patch series to use a less intuitive (i.e.
user-
>unfriendlier) name than `os`, I would want to modify the patch series so
that it _can_
>match "Ubuntu" and "Linux".
>
>> > 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!
>
>> > 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.
>
>These questions actually have pretty obvious answers, with the exception of
WSL1
>(which nobody should use anymore): WSL is a Linux, Cygwin is not an
Operating
>System by itself but runs on Windows. But of course that's not helpful to
help
>configure Git specifically in a Cygwin setup.
>
>> The answer depends on which layer you care about.
>
>Yes, this is the crucial bit.
>
>> 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.
>
>This is probably the most valuable feedback in this entire thread: What is
the problem
>we're trying to solve here?
>
>The original report (which this patch tries to address) asks for a way to
have a user-
>wide ("global") Git configuration that can be shared across machines and
that allows
>for adapting to the various environments. The rationale is motivated well
e.g. in
>https://medium.com/doing-things-right/platform-specific-gitconfigs-and-the-
>wonderful-includeif-7376cd44994d
>where platform-specific credential managers, editors, diff highlighters
that work only
>in certain setups, and work vs personal environments are mentioned.
>
>So as long as Git offers ways to discern between the mentioned environments
by
>including environment-specific configuration files, we solve the problem.
I would suggest using match of uname arguments. But there are variants. The
OS release should also be included here as something like NONSTOP_KERNEL is
not a sufficient answer. We should have at the very least, or encode the
includeif string accordingly:
uname -r = the release n (e.g., J06)
uname -n = the node name (e.g., hpitug)
uname -s = the OS (e.g., NONSTOP_KERNEL
We use these in config.mak.uname (except for -n).
Regards,
Randall
next prev parent reply other threads:[~2023-04-19 15:23 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-21 13:39 [PATCH] config: introduce an Operating System-specific `includeIf` condition Johannes Schindelin via GitGitGadget
2022-11-21 13:51 ` Ævar Arnfjörð Bjarmason
2022-11-21 15:51 ` Phillip Wood
2022-11-21 19:18 ` Johannes Schindelin
2022-11-21 19:19 ` [PATCH v2] " Johannes Schindelin via GitGitGadget
2022-11-21 23:32 ` Jeff King
2022-11-23 11:54 ` Đoàn Trần Công Danh
2022-11-24 0:56 ` Jeff King
2022-11-22 14:01 ` Ævar Arnfjörð Bjarmason
2022-11-22 14:31 ` Phillip Wood
2022-11-23 0:16 ` Junio C Hamano
2022-11-23 15:07 ` Phillip Wood
2022-11-23 23:51 ` Junio C Hamano
2022-11-22 18:40 ` Philippe Blain
2022-11-23 10:40 ` Philip Oakley
2022-11-25 7:31 ` Junio C Hamano
2023-04-17 7:04 ` Samuel Ferencik
2023-04-17 18:46 ` Junio C Hamano
2023-04-18 2:04 ` Felipe Contreras
2023-04-19 12:22 ` Johannes Schindelin
2023-04-19 14:26 ` Chris Torek
2023-04-19 14:32 ` Samuel Ferencik
2023-04-19 15:21 ` rsbecker [this message]
2023-04-19 16:07 ` Junio C Hamano
2023-04-19 16:14 ` Junio C Hamano
2022-11-22 0:03 ` [PATCH] " Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='009c01d972d2$b2bd7680$18386380$@nexbridge.com' \
--to=rsbecker@nexbridge.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=philipoakley@iee.email \
--cc=phillip.wood123@gmail.com \
--cc=sferencik@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).