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

[PATCH] config: add string mapping for enum config_scope

From
Emily Shaffer <emilyshaffer@google.com>
Date
Dec 11, 2019, 22:09 UTC
Message-ID
<20191211220933.48678-1-emilyshaffer@google.com>

If a user is interacting with their config files primarily by the 'git config' command, using the location flags (--global, --system, etc) then they may be more interested to see the scope of the config file they are editing, rather than the filepath.

Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
---
Note: This commit has been cherry-picked out of the "configuration-based
hook management" topic, at
lore.kernel.org/git/20191210023335.49987-1-emilyshaffer@google.com

It turned out that I wanted to use it for git-bugreport as well - to explain the origin of the configs we are printing in the bugreport, without directly exposing the user's home directory path.

This seems to have similar work to https://github.com/gitgitgadget/git/pull/478 which I believe hasn't been mailed yet; but that change is targeted towards the builtin config command, rather than the config library. Since I wanted to use the library, I'm sending on my own now. Maybe this commit will be useful to that change's author.

 - Emily
 config.c | 17 +++++++++++++++++
 config.h |  1 +
 2 files changed, 18 insertions(+)
diff --git a/config.c b/config.c
index e7052b3977..a20110e016 100644
--- a/config.c
+++ b/config.c
@@ -3312,6 +3312,23 @@ enum config_scope current_config_scope(void)
 		return current_parsing_scope;
 }
 
+const char *config_scope_to_string(enum config_scope scope)
+{
+	switch (scope) {
+	case CONFIG_SCOPE_SYSTEM:
+		return _("system");
+	case CONFIG_SCOPE_GLOBAL:
+		return _("global");
+	case CONFIG_SCOPE_REPO:
+		return _("repo");
+	case CONFIG_SCOPE_CMDLINE:
+		return _("cmdline");
+	case CONFIG_SCOPE_UNKNOWN:
+	default:
+		return _("unknown");
+	}
+}
+
 int lookup_config(const char **mapping, int nr_mapping, const char *var)
 {
 	int i;
diff --git a/config.h b/config.h
index 91fd4c5e96..c8bf296dcc 100644
--- a/config.h
+++ b/config.h
@@ -303,6 +303,7 @@ enum config_scope {
 };
 
 enum config_scope current_config_scope(void);
+const char *config_scope_to_string(enum config_scope);
 const char *current_config_origin_type(void);
 const char *current_config_name(void);
 
-- 
2.24.0.525.g8f36a354ae-goog
Next: Junio C Hamano
Message 1 of 6 in “config: add string mapping for enum config_scope”
  1. config: add string mapping for enum config_scopeEmily Shaffer, Dec 11, 2019
  2. Junio C HamanoDec 11, 2019
  3. Emily ShafferDec 11, 2019
  4. Matt RogersDec 11, 2019
  5. Emily ShafferDec 11, 2019
  6. Emily ShafferDec 11, 2019

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.