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

[PATCH 4/8] submodule-config: introduce parse_generic_submodule_config

From
Stefan Beller <sbeller@google.com>
Date
Feb 2, 2016, 17:51 UTC
Message-ID
<1454435497-26429-5-git-send-email-sbeller@google.com>
In-Reply-To
<1454435497-26429-1-git-send-email-sbeller@google.com>

This rewrites parse_config to distinguish between configs specific to one submodule and configs which apply generically to all submodules. We do not have generic submodule configs yet, but the next patch will introduce "submodule.fetchJobs".

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 submodule-config.c | 41 ++++++++++++++++++++++++++++++++---------
 1 file changed, 32 insertions(+), 9 deletions(-)
diff --git a/submodule-config.c b/submodule-config.c
index b826841..29e21b2 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -234,17 +234,22 @@ struct parse_config_parameter {
 	int overwrite;
 };
 
-static int parse_config(const char *var, const char *value, void *data)
+static int parse_generic_submodule_config(const char *key,
+					  const char *var,
+					  const char *value,
+					  struct parse_config_parameter *me)
 {
-	struct parse_config_parameter *me = data;
-	struct submodule *submodule;
-	int subsection_len, ret = 0;
-	const char *subsection, *key;
-
-	if (parse_config_key(var, "submodule", &subsection,
-			     &subsection_len, &key) < 0 || !subsection_len)
-		return 0;
+	return 0;
+}
 
+static int parse_specific_submodule_config(const char *subsection, int subsection_len,
+					   const char *key,
+					   const char *var,
+					   const char *value,
+					   struct parse_config_parameter *me)
+{
+	int ret = 0;
+	struct submodule *submodule;
 	submodule = lookup_or_create_by_name(me->cache,
 					     me->gitmodules_sha1,
 					     subsection, subsection_len);
@@ -314,6 +319,24 @@ static int parse_config(const char *var, const char *value, void *data)
 	return ret;
 }
 
+static int parse_config(const char *var, const char *value, void *data)
+{
+	struct parse_config_parameter *me = data;
+	int subsection_len;
+	const char *subsection, *key;
+
+	if (parse_config_key(var, "submodule", &subsection,
+			     &subsection_len, &key) < 0)
+		return 0;
+
+	if (!subsection_len)
+		return parse_generic_submodule_config(key, var, value, me);
+	else
+		return parse_specific_submodule_config(subsection,
+						       subsection_len, key,
+						       var, value, me);
+}
+
 static int gitmodule_sha1_from_commit(const unsigned char *commit_sha1,
 				      unsigned char *gitmodules_sha1)
 {
-- 
2.7.0.rc0.42.ge5f5e2d
Previous: Junio C HamanoNext: Junio C Hamano
Message 9 of 22 in “[PATCHv7 0/8] Expose submodule parallelism to the user”
  1. Stefan BellerFeb 2, 2016
  2. 1/8 submodule-config: keep update strategy aroundStefan Beller, Feb 2, 2016
  3. Junio C HamanoFeb 3, 2016
  4. Jeff KingFeb 4, 2016
  5. 2/8 submodule-config: drop check against NULLStefan Beller, Feb 2, 2016
  6. Junio C HamanoFeb 3, 2016
  7. 3/8 submodule-config: remove name_and_item_from_varStefan Beller, Feb 2, 2016
  8. Junio C HamanoFeb 3, 2016
  9. 4/8 submodule-config: introduce parse_generic_submodule_configStefan Beller, Feb 2, 2016
  10. Junio C HamanoFeb 3, 2016
  11. Stefan BellerFeb 3, 2016
  12. Junio C HamanoFeb 4, 2016
  13. 5/8 fetching submodules: respect `submodule.fetchJobs` config optionStefan Beller, Feb 2, 2016
  14. Junio C HamanoFeb 3, 2016
  15. 6/8 git submodule update: have a dedicated helper for cloningStefan Beller, Feb 2, 2016
  16. Junio C HamanoFeb 3, 2016
  17. Stefan BellerFeb 3, 2016
  18. Junio C HamanoFeb 4, 2016
  19. Stefan BellerFeb 4, 2016
  20. Junio C HamanoFeb 4, 2016
  21. 7/8 submodule update: expose parallelism to the userStefan Beller, Feb 2, 2016
  22. 8/8 clone: allow an explicit argument for parallel submodule clonesStefan Beller, Feb 2, 2016

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.