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

[PATCH v4 2/3] advice: introduce advice scoping mechanism

From
VMVsevolod Myalitsin <ub4nal@mail.ru>
Date
Sep 10, 2026, 08:53 UTC
Message-ID
<20260910085353.109373-3-ub4nal@mail.ru>
In-Reply-To
<20260910085353.109373-1-ub4nal@mail.ru>

The advice settings currently do not distinguish between configuration scopes. Add a scope hint to advice_setting so that an advice can recommend a specific configuration scope when disabling it.

Use the existing enum config_scope to represent the scope, with CONFIG_SCOPE_UNKNOWN indicating that the default configuration scope should be used.

Signed-off-by: Vsevolod Myalitsin <ub4nal@mail.ru>
---
 advice.c | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/advice.c b/advice.c
index b556c8b38e..12a68ea716 100644
--- a/advice.c
+++ b/advice.c
@@ -42,6 +42,7 @@ enum advice_level {
 
 struct advice_setting {
 	const char *key;
+	enum config_scope scope_hint;
 	enum advice_level level;
 };
 
@@ -96,9 +97,16 @@ static struct advice_setting advice_setting[] = {
 	[ADVICE_WORKTREE_ADD_ORPHAN]			= { "worktreeAddOrphan" },
 };
 
+/*
+ * TRANSLATORS: This is a command line that the user should run.
+ *              Do not translate the part inside double quotes.
+ *              The first %s is the config scope (e.g. " --global"),
+ *              the second %s is the advice key (e.g. "defaultBranchName").
+ */
+
 static const char turn_off_instructions[] =
 N_("\n"
-   "Disable this message with \"git config set advice.%s false\"");
+   "Disable this message with \"git config set%s advice.%s false\"");
 
 static void vadvise(const char *advice,
 	const struct advice_setting *setting, va_list params)
@@ -109,8 +117,21 @@ static void vadvise(const char *advice,
 	strbuf_vaddf(&buf, advice, params);
 
 	if (setting && setting->level == ADVICE_LEVEL_NONE) {
+		const char *scope = "";
+		switch (setting->scope_hint) {
+		case CONFIG_SCOPE_LOCAL:
+		case CONFIG_SCOPE_UNKNOWN:
+			break;
+		case CONFIG_SCOPE_GLOBAL:
+			scope = " --global";
+			break;
+		case CONFIG_SCOPE_SYSTEM:
+			scope = " --system";
+			break;
+		}
 		strbuf_addf(&buf, turn_off_instructions,
-					setting->key);
+				scope, setting->key);
+	}
 
 	for (cp = buf.buf; *cp; cp = np) {
 		np = strchrnul(cp, '\n');
-- 
2.50.1
Previous: Vsevolod MyalitsinNext: Junio C Hamano
Message 11 of 30 in “advice: use global config for default branch name”
  1. advice: use global config for default branch nameVsevolod Myalitsin, Aug 29, 2027
  2. Jeff KingSep 9, 2026
  3. Junio C HamanoSep 9, 2026
  4. Vsevolod MyalitsinSep 9, 2026
  5. Jeff KingSep 9, 2026
  6. Vsevolod MyalitsinSep 10, 2026
  7. Junio C HamanoSep 9, 2026
  8. Vsevolod MyalitsinSep 9, 2026
  9. Junio C HamanoSep 9, 2026
  10. 0/3 defaultBranchName advice is uselessVsevolod Myalitsin, Sep 10, 2026
  11. 2/3 advice: introduce advice scoping mechanismVsevolod Myalitsin, Sep 10, 2026
  12. Junio C HamanoSep 10, 2026
  13. Jeff KingSep 10, 2026
  14. Vsevolod MyalitsinSep 10, 2026
  15. Jeff KingSep 10, 2026
  16. Junio C HamanoSep 10, 2026
  17. Jeff KingSep 10, 2026
  18. Junio C HamanoSep 10, 2026
  19. Jeff KingSep 10, 2026
  20. Junio C HamanoSep 10, 2026
  21. Vsevolod MyalitsinSep 12, 2026
  22. Junio C HamanoSep 13, 2026
  23. Jeff KingSep 14, 2026
  24. Junio C HamanoSep 14, 2026
  25. Junio C HamanoSep 14, 2026
  26. Vsevolod MyalitsinSep 17, 2026
  27. Jeff KingSep 17, 2026
  28. 3/3 advice: use global config for default branch nameVsevolod Myalitsin, Sep 10, 2026
  29. 1/3 advice: pass the entire advice_setting to vadvise()Vsevolod Myalitsin, Sep 10, 2026
  30. SZEDER GáborSep 10, 2026

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.