The global variable 'sparse_expect_files_outside_of_patterns' is used in a single function named 'clear_skip_worktree_from_present_files()' in sparse-index.c. Move its declaration inside that function, removing unnecessary global state. This also allows us to remove the definition '#define USE_THE_REPOSITORY_VARIABLE' from the file 'sparse-index.c'. This change is part of an ongoing effort to eliminate global variables, improve modularity and help libify the codebase. Mentored-by: Christian Couder <christian.couder@xxxxxxxxx> Mentored-by: Ghanshyam Thakkar <shyamthakkar001@xxxxxxxxx> Signed-off-by: Ayush Chandekar <ayu.chandekar@xxxxxxxxx> --- config.c | 14 -------------- environment.c | 1 - environment.h | 2 -- sparse-index.c | 4 +++- 4 files changed, 3 insertions(+), 18 deletions(-) diff --git a/config.c b/config.c index 707fe0707a..d212329799 100644 --- a/config.c +++ b/config.c @@ -1636,17 +1636,6 @@ static int git_default_core_config(const char *var, const char *value, return platform_core_config(var, value, ctx, cb); } -static int git_default_sparse_config(const char *var, const char *value) -{ - if (!strcmp(var, "sparse.expectfilesoutsideofpatterns")) { - sparse_expect_files_outside_of_patterns = git_config_bool(var, value); - return 0; - } - - /* Add other config variables here and to Documentation/config/sparse.adoc. */ - return 0; -} - static int git_default_i18n_config(const char *var, const char *value) { if (!strcmp(var, "i18n.commitencoding")) { @@ -1808,9 +1797,6 @@ int git_default_config(const char *var, const char *value, return 0; } - if (starts_with(var, "sparse.")) - return git_default_sparse_config(var, value); - /* Add other config variables here and to Documentation/config.adoc. */ return 0; } diff --git a/environment.c b/environment.c index 7d46b80711..d51e0a14aa 100644 --- a/environment.c +++ b/environment.c @@ -64,7 +64,6 @@ enum push_default_type push_default = PUSH_DEFAULT_UNSPECIFIED; #endif enum object_creation_mode object_creation_mode = OBJECT_CREATION_MODE; int grafts_keep_true_parents; -int sparse_expect_files_outside_of_patterns; int merge_log_config = -1; int precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */ unsigned long pack_size_limit_cfg; diff --git a/environment.h b/environment.h index 00a5b332a0..5121a28d3f 100644 --- a/environment.h +++ b/environment.h @@ -160,8 +160,6 @@ extern int precomposed_unicode; extern int protect_hfs; extern int protect_ntfs; -extern int sparse_expect_files_outside_of_patterns; - enum rebase_setup_type { AUTOREBASE_NEVER = 0, AUTOREBASE_LOCAL, diff --git a/sparse-index.c b/sparse-index.c index 444da8a753..5d87fc65c0 100644 --- a/sparse-index.c +++ b/sparse-index.c @@ -1,4 +1,3 @@ -#define USE_THE_REPOSITORY_VARIABLE #define DISABLE_SIGN_COMPARE_WARNINGS #include "git-compat-util.h" @@ -668,6 +667,9 @@ static void clear_skip_worktree_from_present_files_full(struct index_state *ista void clear_skip_worktree_from_present_files(struct index_state *istate) { + int sparse_expect_files_outside_of_patterns = 0; + repo_config_get_bool(istate->repo, "sparse.expectfilesoutsideofpatterns", + &sparse_expect_files_outside_of_patterns); if (!istate->repo->settings.sparse_checkout || sparse_expect_files_outside_of_patterns) return; -- 2.49.0