Re: [PATCH v1] alias: support UTF-8 characters via subsection syntax
From: Junio C Hamano <hidden>
Date: 2026-02-10 16:35:08
Jonatan Holmgren [off-list ref] writes:
quoted hunk
diff --git a/Documentation/RelNotes/2.54.0.adoc b/Documentation/RelNotes/2.54.0.adoc index 20c660d82a..8cb00a21bb 100644 --- a/Documentation/RelNotes/2.54.0.adoc +++ b/Documentation/RelNotes/2.54.0.adoc@@ -7,6 +7,14 @@ UI, Workflows & Features * "git add -p" and friends note what the current status of the hunk being shown is. + * Git aliases now support UTF-8 characters in alias names through + subsection syntax: `[alias "name"] command = value`. This enables + aliases in non-English languages. The flat syntax continues + to work for backward compatibility. + + * The new subsection syntax uses case-sensitive matching and + the flat syntax remains case-insensitive for backward compatibility.
Thanks for summrizing the topic well. "The flat syntax" is a new phrase to us, I think. Do we have a term to call two-level configuration variables in contrast to threee-level ones defined in the glossary? I've seen phrases like two- and three- level names to distinguish them in the past, but that is no way "official". "git config --help" has Syntax section that calls "alias" a "section", and "foo" a "subsection", and "command" a "variable name" in "alias.foo.command". Perhaps "the alias definition without subsection, e.g., "[alias] co = checkout", continues to work", or something, perhaps? In addition to what Peff already mentioned, we would not want the second bullet point; the fact that the traditional two-level config is still supported is very much worth mentioning, which is already done in the previous point. So all it remains in this bullet point is that this topic did not change anything in the three-level configuration case, which is not noteworty.
+# Simple syntax (ASCII names) +[alias] + co = checkout + st = status
It is somewhat misleading to call this "ASCII" as it is stricter
than that (e.g., there are '.' and other ASCII characters that you
cannot have in the name).
"Limited to alphanumeric and '-' letters (the same limitation as
configuration variable names), case insensitive"
or something.