From: Stefan Beller Date: Fri, 29 Jul 2016 00:44:07 GMT Subject: [PATCHv3 5/7] submodule-config: keep configured branch around 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 --- 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