aboutsummaryrefslogtreecommitdiff
path: root/submodule-config.c
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2016-07-28 17:44:07 -0700
committerJunio C Hamano <gitster@pobox.com>2016-08-01 14:42:07 -0700
commitb5944f3476dbaee15649b0fa02b2b35aaa149dc3 (patch)
treea8ff78ce512ce89c3723455329bd0064642697c7 /submodule-config.c
parent2de26ae1dc89236ff5d0d0657b0eb884b6c331b5 (diff)
downloadgit-b5944f3476dbaee15649b0fa02b2b35aaa149dc3.tar.gz
git-b5944f3476dbaee15649b0fa02b2b35aaa149dc3.tar.xz
submodule-config: keep configured branch around
The branch field will be used in a later patch by `submodule update`. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'submodule-config.c')
-rw-r--r--submodule-config.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/submodule-config.c b/submodule-config.c
index 077db4054..ebee1e479 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);
}
}