Subject: [PATCH 0/3] support UTF-8 in alias names

From: Jonatan Holmgren <[email-masked]>
Date: Tue, 10 Feb 2026 23:27:42 +0100

Hi all,

This v3 addresses all feedback from Junio on v2. Changes since v2:

- Split into three commits: a preparatory refactoring, a compatibility-
  breaking change separated explicitly, and the main feature
- Preserved error checking for value-less alias config (config_error_nonbool)
- Fixed behavior when !value to preserve adding items to list while keeping
  util as NULL
- Improved commit messages to say "ASCII alphanumeric" and better explain
  that aliases are implemented as config variable names
- Tests now properly verify value-less command key handling

The implementation follows Peff's suggestion to use config subsections
rather than modifying the config key syntax. This allows arbitrary bytes
in alias names while maintaining backward compatibility.

Suggested release note blurb:

 * Git aliases now support UTF-8 characters and special characters
   in alias names through subsection syntax: `[alias "name"] command = value`.
   This enables aliases in non-English languages. The traditional syntax
   (without subsection, e.g., `[alias] co = checkout`) continues to work.

Jonatan Holmgren (3):
  help: use list_aliases() for alias listing
  alias: prepare for subsection aliases
  alias: support non-alphanumeric names via subsection syntax

 Documentation/config/alias.adoc | 43 ++++++++++++++++++-----
 alias.c                         | 40 +++++++++++++++++++---
 help.c                          | 39 +++++++++++----------
 t/t0014-alias.sh                | 60 +++++++++++++++++++++++++++++++++
 4 files changed, 150 insertions(+), 32 deletions(-)

-- 
2.53.0