aboutsummaryrefslogtreecommitdiffstats
path: root/submodule-config.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-12-09 22:17:55 -0800
committerJunio C Hamano <gitster@pobox.com>2019-12-09 22:17:55 -0800
commit7034cd094bda4edbcdff7fad1a28fcaaf9b9a040 (patch)
treee0b837c5e5a2ea2fce3255ef59fd981e2bd30374 /submodule-config.c
parentThe fourth batch (diff)
parentGit 2.24.1 (diff)
downloadgit-7034cd094bda4edbcdff7fad1a28fcaaf9b9a040.tar.gz
git-7034cd094bda4edbcdff7fad1a28fcaaf9b9a040.zip
Sync with Git 2.24.1
Diffstat (limited to 'submodule-config.c')
-rw-r--r--submodule-config.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/submodule-config.c b/submodule-config.c
index 401a9b2382..b93482d834 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -409,6 +409,13 @@ struct parse_config_parameter {
int overwrite;
};
+/*
+ * Parse a config item from .gitmodules.
+ *
+ * This does not handle submodule-related configuration from the main
+ * config store (.git/config, etc). Callers are responsible for
+ * checking for overrides in the main config store when appropriate.
+ */
static int parse_config(const char *var, const char *value, void *data)
{
struct parse_config_parameter *me = data;
@@ -486,8 +493,9 @@ static int parse_config(const char *var, const char *value, void *data)
warn_multiple_config(me->treeish_name, submodule->name,
"update");
else if (parse_submodule_update_strategy(value,
- &submodule->update_strategy) < 0)
- die(_("invalid value for %s"), var);
+ &submodule->update_strategy) < 0 ||
+ submodule->update_strategy.type == SM_UPDATE_COMMAND)
+ die(_("invalid value for %s"), var);
} else if (!strcmp(item.buf, "shallow")) {
if (!me->overwrite && submodule->recommend_shallow != -1)
warn_multiple_config(me->treeish_name, submodule->name,