[PATCH v2 0/2] environment: move ignore_case into repo_config_values
From: Tian Yuchen <hidden>
Date: 2026-06-18 11:42:21
The 'core.ignorecase' configuration, stored as the global variable 'ignore_case', acts as a core filesystem capability flag. This series continues the ongoing libification effort by moving this global variable into 'struct repo_config_values', tying it to the specific repository instance it was read from. This allows us to encapsulate the configuration without altering its eager-parsing behavior. The getter function 'repo_ignore_case()' is introduced so that we can safely retrieve the configuration value whilst maintaining the correct fallback logic. RFC Questions: dir.c --- Performance overhead? compat/win32/path-utils.c --- Is it appropriate to include the repository.h header file? Related materials: [1] In this patch to migrate protect_hfs and protect_ntfs, the approach of introducing getters has been endorsed. [2] Derrick Stolee's previous attempt. The reasons for the failure are also mentioned in [1]. Changes since V1: - s/repo_get_ignore_case()/repo_ignore_case() - Use repo->initialized instead of repo->gitdir Thanks! Mentored-by: Christian Couder christian.couder@gmail.com Mentored-by: Ayush Chandekar ayu.chandekar@gmail.com Mentored-by: Olamide Caleb Bello belkid98@gmail.com Signed-off-by: Tian Yuchen cat@malon.dev [1] https://lore.kernel.org/git/20260606143412.15443-1-cat@malon.dev/ (local) [2] https://lore.kernel.org/git/2b4198c09cb6c04c60608d19072d419503dfe5df.1685716421.git.gitgitgadget@gmail.com/ (local) Tian Yuchen (2): environment: move ignore_case into repo_config_values config: use repo_ignore_case() to access core.ignorecase apply.c | 2 +- builtin/fetch.c | 2 +- builtin/mv.c | 2 +- compat/win32/path-utils.c | 3 ++- dir.c | 18 +++++++++--------- environment.c | 11 +++++++++-- environment.h | 9 ++++++++- fsmonitor.c | 2 +- name-hash.c | 6 +++--- read-cache.c | 6 +++--- refs/files-backend.c | 4 ++-- submodule.c | 2 +- t/helper/test-lazy-init-name-hash.c | 2 +- unpack-trees.c | 2 +- 14 files changed, 43 insertions(+), 28 deletions(-) -- 2.43.0