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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.