From 862564c961f173bc7bccff1848c96eb1fbb00247 Mon Sep 17 00:00:00 2001 From: Tian Yuchen Date: Fri, 7 Aug 2026 16:59:30 +0800 Subject: [PATCH 1/3] environment: drop redundant NULL checks in config getters These repository config getters require a valid repository pointer. While an uninitialized repository is a valid state and is handled by returning default values, passing NULL is a programming error. Drop the NULL checks so that invalid callers are not silently accepted. Mentored-by: Christian Couder Mentored-by: Ayush Chandekar Mentored-by: Olamide Caleb Bello Signed-off-by: Tian Yuchen Signed-off-by: Junio C Hamano --- environment.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/environment.c b/environment.c index 76ee65e62b..f5628b6758 100644 --- a/environment.c +++ b/environment.c @@ -119,23 +119,23 @@ int is_bare_repository(struct repository *repo) int repo_protect_ntfs(struct repository *repo) { - return (repo && repo->initialized) ? - repo_config_values(repo)->protect_ntfs : - PROTECT_NTFS_DEFAULT; + return repo->initialized + ? repo_config_values(repo)->protect_ntfs + : PROTECT_NTFS_DEFAULT; } int repo_protect_hfs(struct repository *repo) { - return (repo && repo->initialized) ? - repo_config_values(repo)->protect_hfs : - PROTECT_HFS_DEFAULT; + return repo->initialized + ? repo_config_values(repo)->protect_hfs + : PROTECT_HFS_DEFAULT; } int repo_ignore_case(struct repository *repo) { - return (repo && repo->initialized) ? - repo_config_values(repo)->ignore_case : - 0; + return repo->initialized + ? repo_config_values(repo)->ignore_case + : 0; } int repo_trust_executable_bit(struct repository *repo) From a095d70a19a83d2b74a33060b779733c1b5bceac Mon Sep 17 00:00:00 2001 From: Tian Yuchen Date: Fri, 7 Aug 2026 16:59:31 +0800 Subject: [PATCH 2/3] environment: clarify repository config getter documentation Update the comment above repository config getters to describe their common behavior. The getters handle repositories that are not fully initialized by returning the corresponding default values. Mentored-by: Christian Couder Mentored-by: Ayush Chandekar Mentored-by: Olamide Caleb Bello Signed-off-by: Tian Yuchen Signed-off-by: Junio C Hamano --- environment.h | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/environment.h b/environment.h index e7ec5b0437..6f864c1635 100644 --- a/environment.h +++ b/environment.h @@ -175,22 +175,15 @@ int git_default_core_config(const char *var, const char *value, const struct config_context *ctx, void *cb); /* - * Getters for the `protect_hfs` and `protect_ntfs` fields of `struct repo_config_values`. - * They check `repo->initialized` to prevent calling `repo_config_values()` - * before the repository setup is fully complete or in non-git environments. + * Getters for configuration variables in `struct repo_config_values`. + * These functions require a non-NULL repository pointer and handle + * repositories that are not fully initialized by returning appropriate + * default values. */ int repo_protect_hfs(struct repository *repo); int repo_protect_ntfs(struct repository *repo); - -/* - * Getter for the `ignore_case` field of `struct repo_config_values`. - * It checks `repo->initialized` to prevent calling repo_config_values()` - * before the repository setup is fully complete or in non-git environments. - */ int repo_ignore_case(struct repository *repo); - int repo_trust_executable_bit(struct repository *repo); - int repo_has_symlinks(struct repository *repo); const char *repo_excludes_file(struct repository *repo); From 9e50340a23aa9a67ba8c3f947c594e453269d378 Mon Sep 17 00:00:00 2001 From: Tian Yuchen Date: Fri, 7 Aug 2026 16:59:32 +0800 Subject: [PATCH 3/3] environment: remove inaccurate repo_config_values comments The section comments in struct repo_config_values do not accurately describe all members grouped under them. Remove them rather than implying a relationship that does not exist. Mentored-by: Christian Couder Mentored-by: Ayush Chandekar Mentored-by: Olamide Caleb Bello Signed-off-by: Tian Yuchen Signed-off-by: Junio C Hamano --- environment.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/environment.h b/environment.h index 6f864c1635..67fd387d35 100644 --- a/environment.h +++ b/environment.h @@ -115,7 +115,6 @@ enum object_creation_mode { }; struct repo_config_values { - /* section "core" config values */ char *attributes_file; char *excludes_file; char *editor_program; @@ -139,11 +138,7 @@ struct repo_config_values { int ignore_case; int trust_executable_bit; int has_symlinks; - - /* section "sparse" config values */ int sparse_expect_files_outside_of_patterns; - - /* section "branch" config values */ enum branch_track branch_track; };