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

[PATCHv3 5/7] submodule-config: keep configured branch around

From
Stefan Beller <sbeller@google.com>
Date
Jul 29, 2016, 00:44 UTC
Message-ID
<20160729004409.2072-6-sbeller@google.com>
In-Reply-To
<20160729004409.2072-1-sbeller@google.com>
The branch field will be used in a later patch by `submodule update`.
Signed-off-by: Stefan Beller <sbeller@google.com>
---
 submodule-config.c | 11 ++++++++++-
 submodule-config.h |  1 +
 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/submodule-config.c b/submodule-config.c
index 077db40..ebee1e4 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -59,6 +59,7 @@ static void free_one_config(struct submodule_entry *entry)
 {
 	free((void *) entry->config->path);
 	free((void *) entry->config->name);
+	free((void *) entry->config->branch);
 	free((void *) entry->config->update_strategy.command);
 	free(entry->config);
 }
@@ -199,6 +200,7 @@ static struct submodule *lookup_or_create_by_name(struct submodule_cache *cache,
 	submodule->update_strategy.command = NULL;
 	submodule->fetch_recurse = RECURSE_SUBMODULES_NONE;
 	submodule->ignore = NULL;
+	submodule->branch = NULL;
 	submodule->recommend_shallow = -1;
 
 	hashcpy(submodule->gitmodules_sha1, gitmodules_sha1);
@@ -358,9 +360,16 @@ static int parse_config(const char *var, const char *value, void *data)
 		if (!me->overwrite && submodule->recommend_shallow != -1)
 			warn_multiple_config(me->commit_sha1, submodule->name,
 					     "shallow");
-		else {
+		else
 			submodule->recommend_shallow =
 				git_config_bool(var, value);
+	} else if (!strcmp(item.buf, "branch")) {
+		if (!me->overwrite && submodule->branch)
+			warn_multiple_config(me->commit_sha1, submodule->name,
+					     "branch");
+		else {
+			free((void *)submodule->branch);
+			submodule->branch = xstrdup(value);
 		}
 	}
 
diff --git a/submodule-config.h b/submodule-config.h
index b1fdcc0..d05c542 100644
--- a/submodule-config.h
+++ b/submodule-config.h
@@ -15,6 +15,7 @@ struct submodule {
 	const char *url;
 	int fetch_recurse;
 	const char *ignore;
+	const char *branch;
 	struct submodule_update_strategy update_strategy;
 	/* the sha1 blob id of the responsible .gitmodules file */
 	unsigned char gitmodules_sha1[20];
-- 
2.9.2.472.g1ffb07c.dirty
Previous: Stefan BellerNext: Stefan Beller
Message 5 of 12 in “[PATCHv3 0/7] submodule update: allow '.' for branch value”
  1. Stefan BellerJul 29, 2016
  2. 1/7 t7406: future proof tests with hard coded depthStefan Beller, Jul 29, 2016
  3. 2/7 submodule update: respect depth in subsequent fetchesStefan Beller, Jul 29, 2016
  4. 4/7 submodule--helper: fix usage string for relative-pathStefan Beller, Jul 29, 2016
  5. 5/7 submodule-config: keep configured branch aroundStefan Beller, Jul 29, 2016
  6. 3/7 submodule update: narrow scope of local variableStefan Beller, Jul 29, 2016
  7. 7/7 submodule update: allow '.' for branch valueStefan Beller, Jul 29, 2016
  8. 6/7 submodule--helper: add remote-branch helperStefan Beller, Jul 29, 2016
  9. Jeff KingAug 3, 2016
  10. Stefan BellerAug 3, 2016
  11. Jeff KingAug 3, 2016
  12. Junio C HamanoAug 1, 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.