git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 17, 2023, 18:46 UTC
Message-ID
<xmqq7cuamjmu.fsf@gitster.g>
In-Reply-To
<CABwTEiRz+-+Zdx3Ed7O09Ch8GoXH-SnmJyc-vFOdF-hk_uO-yA@mail.gmail.com>
Samuel Ferencik <sferencik@gmail.com> writes:
Show 11 quoted lines
>>>> 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.

Previous: Samuel FerencikNext: Felipe Contreras
Message 18 of 26 in “config: introduce an Operating System-specific `includeIf` condition”
  1. config: introduce an Operating System-specific `includeIf` conditionJohannes Schindelin via GitGitGadget, Nov 21, 2022
  2. Ævar Arnfjörð BjarmasonNov 21, 2022
  3. Phillip WoodNov 21, 2022
  4. Johannes SchindelinNov 21, 2022
  5. config: introduce an Operating System-specific `includeIf` conditionJohannes Schindelin via GitGitGadget, Nov 21, 2022
  6. Jeff KingNov 21, 2022
  7. Đoàn Trần Công DanhNov 23, 2022
  8. Jeff KingNov 24, 2022
  9. Ævar Arnfjörð BjarmasonNov 22, 2022
  10. Phillip WoodNov 22, 2022
  11. Junio C HamanoNov 23, 2022
  12. Phillip WoodNov 23, 2022
  13. Junio C HamanoNov 23, 2022
  14. Philippe BlainNov 22, 2022
  15. Philip OakleyNov 23, 2022
  16. Junio C HamanoNov 25, 2022
  17. Samuel FerencikApr 17, 2023
  18. Junio C HamanoApr 17, 2023
  19. Felipe ContrerasApr 18, 2023
  20. Johannes SchindelinApr 19, 2023
  21. Chris TorekApr 19, 2023
  22. Samuel FerencikApr 19, 2023
  23. rsbecker@nexbridge.comApr 19, 2023
  24. Junio C HamanoApr 19, 2023
  25. Junio C HamanoApr 19, 2023
  26. Junio C HamanoNov 22, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.