summaryrefslogtreecommitdiff
path: root/submodule-config.c
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2021-03-03 15:16:24 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2021-03-03 15:16:24 +0900
commitb005d550f87fdb56406120a35fa218d869cdde3a (patch)
tree9ac36dfc0e63c218b037a33b0c4060c2658ee868 /submodule-config.c
parent19ea3f4652253344938d2045dc0e9533c89495fe (diff)
downloadgit-b005d550f87fdb56406120a35fa218d869cdde3a.tar.gz
git-b005d550f87fdb56406120a35fa218d869cdde3a.tar.bz2
git-b005d550f87fdb56406120a35fa218d869cdde3a.zip
Imported Upstream version 2.15.4upstream/2.15.4
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 3414fa1c..464908df 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -396,6 +396,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;
@@ -473,8 +480,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,