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

[PATCH 7/8] config: eliminate config_exclusive_filename

From
Jeff King <peff@peff.net>
Date
Feb 16, 2012, 08:09 UTC
Message-ID
<20120216080932.GG11843@sigill.intra.peff.net>
In-Reply-To
<20120216080102.GA11793@sigill.intra.peff.net>

This is a magic global variable that was intended as an override to the usual git-config lookup process. Once upon a time, you could specify GIT_CONFIG to any git program, and it would look only at that file. This turned out to be confusing and cause a lot of bugs for little gain. As a result, dc87183 (Only use GIT_CONFIG in "git config", not other programs, 2008-06-30) took this away for all callers except git-config.

Since git-config no longer uses it either, the variable can just go away. As the diff shows, nobody was setting to anything except NULL, so we can just replace any sites where it was read with NULL.

Signed-off-by: Jeff King <peff@peff.net>
---
This could be squashed into the last patch (really, all of the last few
patches could be squashed). But I was able to "git grep
config_exclusive_filename" at this state and see that yes, indeed, the
variable is now totally useless.
 cache.h  |    2 --
 config.c |   10 +++-------
 2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/cache.h b/cache.h
index 7cb8874..411c60d 100644
--- a/cache.h
+++ b/cache.h
@@ -1150,8 +1150,6 @@ struct config_include_data {
 #define CONFIG_INCLUDE_INIT { 0 }
 extern int git_config_include(const char *name, const char *value, void *data);
 
-extern const char *config_exclusive_filename;
-
 #define MAX_GITNAME (1000)
 extern char git_default_email[MAX_GITNAME];
 extern char git_default_name[MAX_GITNAME];
diff --git a/config.c b/config.c
index fbf883d..e1d6857 100644
--- a/config.c
+++ b/config.c
@@ -26,8 +26,6 @@ static config_file *cf;
 
 static int zlib_compression_seen;
 
-const char *config_exclusive_filename = NULL;
-
 #define MAX_INCLUDE_DEPTH 10
 static const char include_depth_advice[] =
 "exceeded maximum include depth (%d) while including\n"
@@ -1005,7 +1003,7 @@ int git_config_with_options(config_fn_t fn, void *data,
 
 int git_config(config_fn_t fn, void *data)
 {
-	return git_config_with_options(fn, data, config_exclusive_filename);
+	return git_config_with_options(fn, data, NULL);
 }
 
 /*
@@ -1504,8 +1502,7 @@ write_err_out:
 int git_config_set_multivar(const char *key, const char *value,
 			const char *value_regex, int multi_replace)
 {
-	return git_config_set_multivar_in_file(config_exclusive_filename,
-					       key, value, value_regex,
+	return git_config_set_multivar_in_file(NULL, key, value, value_regex,
 					       multi_replace);
 }
 
@@ -1631,8 +1628,7 @@ out:
 
 int git_config_rename_section(const char *old_name, const char *new_name)
 {
-	return git_config_rename_section_in_file(config_exclusive_filename,
-						 old_name, new_name);
+	return git_config_rename_section_in_file(NULL, old_name, new_name);
 }
 
 /*
-- 
1.7.9.1.4.g8ffed
Previous: Jeff KingNext: Jeff King
Message 13 of 23 in “What's cooking in git.git (Feb 2012, #05; Mon, 13)”
  1. Junio C HamanoFeb 13, 2012
  2. An incremental update to "What's cooking"Junio C Hamano, Feb 14, 2012
  3. Jeff KingFeb 14, 2012
  4. Junio C HamanoFeb 14, 2012
  5. Jeff KingFeb 14, 2012
  6. 0/8 config-include fixesJeff King, Feb 16, 2012
  7. 1/8 t1300: add missing &&-chainingJeff King, Feb 16, 2012
  8. 2/8 config: copy the return value of prefix_filenameJeff King, Feb 16, 2012
  9. 3/8 config: teach git_config_set_multivar_in_file a default pathJeff King, Feb 16, 2012
  10. 4/8 config: teach git_config_rename_section a file argumentJeff King, Feb 16, 2012
  11. 5/8 config: provide a version of git_config with more optionsJeff King, Feb 16, 2012
  12. 6/8 config: stop using config_exclusive_filenameJeff King, Feb 16, 2012
  13. 7/8 config: eliminate config_exclusive_filenameJeff King, Feb 16, 2012
  14. 8/8 config: do not respect includes for single-file --listJeff King, Feb 16, 2012
  15. Junio C HamanoFeb 16, 2012
  16. Jeff KingFeb 17, 2012
  17. Junio C HamanoFeb 17, 2012
  18. Jeff KingFeb 17, 2012
  19. Jeff KingFeb 17, 2012
  20. 0/2 api-config documentation leftoversJeff King, Feb 17, 2012
  21. Junio C HamanoFeb 17, 2012
  22. 1/2 docs/api-config: minor clarificationsJeff King, Feb 17, 2012
  23. 2/2 docs/api-config: describe git_config_with_optionsJeff King, Feb 17, 2012

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.