git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[GSOC PATCH 1/2] environment: remove the global variable 'core_preload_index'

From
Ayush Chandekar <ayu.chandekar@gmail.com>
Date
Jun 10, 2025, 13:02 UTC
Message-ID
<1dda6c9ab616bcdf5632c0c1359b489844f7933f.1749557133.git.ayu.chandekar@gmail.com>
In-Reply-To
<cover.1749557133.git.ayu.chandekar@gmail.com>

The global variable 'core_preload_index' is used in a single function named 'preload_index()' in "preload-index.c". Move its declaration inside that function, removing unnecessary global state.

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@gmail.com>
Mentored-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
Signed-off-by: Ayush Chandekar <ayu.chandekar@gmail.com>
---
 config.c        | 5 -----
 environment.c   | 3 ---
 environment.h   | 1 -
 preload-index.c | 4 ++++
 4 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/config.c b/config.c
index b18b5617fc..eb60c293ab 100644
--- a/config.c
+++ b/config.c
@@ -1595,11 +1595,6 @@ static int git_default_core_config(const char *var, const char *value,
 		return 0;
 	}
 
-	if (!strcmp(var, "core.preloadindex")) {
-		core_preload_index = git_config_bool(var, value);
-		return 0;
-	}
-
 	if (!strcmp(var, "core.createobject")) {
 		if (!value)
 			return config_error_nonbool(var);
diff --git a/environment.c b/environment.c
index c61d773e7e..7bf0390a33 100644
--- a/environment.c
+++ b/environment.c
@@ -113,9 +113,6 @@ const char *comment_line_str = "#";
 char *comment_line_str_to_free;
 int auto_comment_line_char;
 
-/* Parallel index stat data preload? */
-int core_preload_index = 1;
-
 /* This is set by setup_git_directory_gently() and/or git_default_config() */
 char *git_work_tree_cfg;
 
diff --git a/environment.h b/environment.h
index 3d98461a06..9a3d05d414 100644
--- a/environment.h
+++ b/environment.h
@@ -155,7 +155,6 @@ extern int pack_compression_level;
 extern unsigned long pack_size_limit_cfg;
 extern int max_allowed_tree_depth;
 
-extern int core_preload_index;
 extern int precomposed_unicode;
 extern int protect_hfs;
 extern int protect_ntfs;
diff --git a/preload-index.c b/preload-index.c
index 40ab2abafb..9fee4cc3aa 100644
--- a/preload-index.c
+++ b/preload-index.c
@@ -19,6 +19,7 @@
 #include "repository.h"
 #include "symlinks.h"
 #include "trace2.h"
+#include "config.h"
 
 /*
  * Mostly randomly chosen maximum thread counts: we
@@ -111,6 +112,9 @@ void preload_index(struct index_state *index,
 	struct thread_data data[MAX_PARALLEL];
 	struct progress_data pd;
 	int t2_sum_lstat = 0;
+	int core_preload_index = 1;
+
+	repo_config_get_bool(the_repository, "core.preloadindex", &core_preload_index);
 
 	if (!HAVE_THREADS || !core_preload_index)
 		return;
-- 
2.49.0
Previous: Ayush ChandekarNext: Ayush Chandekar
Message 2 of 4 in “preload-index: remove dependency on global variables and 'the_repository'”
  1. 0/2 preload-index: remove dependency on global variables and 'the_repository'Ayush Chandekar, Jun 10, 2025
  2. 1/2 environment: remove the global variable 'core_preload_index'Ayush Chandekar, Jun 10, 2025
  3. 2/2 preload-index: stop depending on 'the_repository'Ayush Chandekar, Jun 10, 2025
  4. Junio C HamanoJun 10, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.