]> Kevux Git Server - rit/commit
environment: move "precomposed_unicode" into `struct repo_config_values`
authorOlamide Caleb Bello <belkid98@gmail.com>
Tue, 2 Jun 2026 17:09:18 +0000 (18:09 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 2 Jun 2026 23:36:48 +0000 (08:36 +0900)
commit6f00fc0499851d33ef6eae3f8633cb67808834aa
tree6299df9ebbd1d10f9f247c2c1819d7bccb5c13e8
parent8cd7402accec35c92d9ea8cc10b9d8e2536ef7b5
environment: move "precomposed_unicode" into `struct repo_config_values`

The `core.precomposeunicode` configuration is currently stored in the
global variable `precomposed_unicode`, which makes it shared across
repository instances within a single process.

Store it instead in `repo_config_values`, where eagerly‑parsed
repository configuration lives. `core.precomposeunicode` is parsed
eagerly because it controls Unicode path normalization on macOS,
a fundamental filesystem‑level behavior that many operations depend
on; a lazy parse could lead to inconsistent results and hamper
libification. This preserves the existing behavior while tying the
value to the repository from which it was read, avoiding cross‑
repository state leakage and continuing the effort to reduce reliance
on global configuration state.

Update all references to use `repo_config_values()`.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
Signed-off-by: Olamide Caleb Bello <belkid98@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/precompose_utf8.c
environment.c
environment.h
upload-pack.c