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

From: Jonatan Holmgren <[email-masked]>
Date: Tue, 10 Feb 2026 19:31:08 +0100

Hi all,

Thanks for the feedback on my first patch! This iteration (to my understanding) 
addresses all the points raised by Jeff, Junio, and Brian.

Relevant since RFC/v1:
- Split into two commits: a preparatory refactoring and the main feature
- Removed release notes from commits 
  (suggested blurb below, first time doing this, bear with me :))
- Fixed documentation to use "without subsection" terminology instead of
  "flat syntax"
- Consolidated help.c to use list_aliases() from alias.c, eliminating
  duplicate parsing logic
- Added utf8_strwidth() for proper column alignment in help output
- Improved test coverage with case-sensitivity tests, subsection validation,
  and help listing verification
- Tests now use test_config helper and simpler output verification

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 (2):
  help: use list_aliases() for alias listing and lookup
  alias: support non-alphanumeric names via subsection syntax

 Documentation/config/alias.adoc | 44 +++++++++++++++++++++-----
 alias.c                         | 43 ++++++++++++++++++++++----
 help.c                          | 36 ++++++++++-----------
 t/t0014-alias.sh                | 55 +++++++++++++++++++++++++++++++++
 4 files changed, 144 insertions(+), 34 deletions(-)

-- 
2.53.0