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

[PATCH 5/9] fetch: use `fetch_config` to store "fetch.pruneTags" value

From
Patrick Steinhardt <ps@pks.im>
Date
May 17, 2023, 11:49 UTC
Message-ID
<3aa64ca1941cb8204448a48e1d44b9563c002d19.1684324059.git.ps@pks.im>
In-Reply-To
<cover.1684324059.git.ps@pks.im>

Move the parsed "fetch.pruneTags" config value into the `fetch_config` structure. This reduces our reliance on global variables and further unifies the way we parse the configuration in git-fetch(1).

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 builtin/fetch.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 488705b519..94718bcb2a 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -79,7 +79,6 @@ static int prefetch = 0;
 static int prune = -1; /* unspecified */
 #define PRUNE_BY_DEFAULT 0 /* do we prune by default? */
 
-static int fetch_prune_tags_config = -1; /* unspecified */
 static int prune_tags = -1; /* unspecified */
 #define PRUNE_TAGS_BY_DEFAULT 0 /* do we prune tags by default? */
 
@@ -108,6 +107,7 @@ static struct string_list negotiation_tip = STRING_LIST_INIT_NODUP;
 struct fetch_config {
 	enum display_format display_format;
 	int prune;
+	int prune_tags;
 };
 
 static int git_fetch_config(const char *k, const char *v, void *cb)
@@ -120,7 +120,7 @@ static int git_fetch_config(const char *k, const char *v, void *cb)
 	}
 
 	if (!strcmp(k, "fetch.prunetags")) {
-		fetch_prune_tags_config = git_config_bool(k, v);
+		fetch_config->prune_tags = git_config_bool(k, v);
 		return 0;
 	}
 
@@ -2057,8 +2057,8 @@ static int fetch_one(struct remote *remote, int argc, const char **argv,
 		/* no command line request */
 		if (0 <= remote->prune_tags)
 			prune_tags = remote->prune_tags;
-		else if (0 <= fetch_prune_tags_config)
-			prune_tags = fetch_prune_tags_config;
+		else if (0 <= config->prune_tags)
+			prune_tags = config->prune_tags;
 		else
 			prune_tags = PRUNE_TAGS_BY_DEFAULT;
 	}
@@ -2109,6 +2109,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
 	struct fetch_config config = {
 		.display_format = DISPLAY_FORMAT_FULL,
 		.prune = -1,
+		.prune_tags = -1,
 	};
 	const char *submodule_prefix = "";
 	const char *bundle_uri;
-- 
2.40.1
Previous: Jeff KingNext: Patrick Steinhardt
Message 12 of 16 in “fetch: smallish cleanups”
  1. 0/9 fetch: smallish cleanupsPatrick Steinhardt, May 17, 2023
  2. 1/9 fetch: drop unused DISPLAY_FORMAT_UNKNOWN enum valuePatrick Steinhardt, May 17, 2023
  3. Jeff KingMay 19, 2023
  4. 2/9 fetch: drop unneeded NULL-check for `remote_ref`Patrick Steinhardt, May 17, 2023
  5. Jeff KingMay 19, 2023
  6. 3/9 fetch: pass through `fetch_config` directlyPatrick Steinhardt, May 17, 2023
  7. Jeff KingMay 19, 2023
  8. Patrick SteinhardtMay 22, 2023
  9. Jeff KingMay 22, 2023
  10. 4/9 fetch: use `fetch_config` to store "fetch.prune" valuePatrick Steinhardt, May 17, 2023
  11. Jeff KingMay 19, 2023
  12. 5/9 fetch: use `fetch_config` to store "fetch.pruneTags" valuePatrick Steinhardt, May 17, 2023
  13. 6/9 fetch: use `fetch_config` to store "fetch.showForcedUpdates" valuePatrick Steinhardt, May 17, 2023
  14. 7/9 fetch: use `fetch_config` to store "fetch.recurseSubmodules" valuePatrick Steinhardt, May 17, 2023
  15. 8/9 fetch: use `fetch_config` to store "fetch.parallel" valuePatrick Steinhardt, May 17, 2023
  16. 9/9 fetch: use `fetch_config` to store "submodule.fetchJobs" valuePatrick Steinhardt, May 17, 2023

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.