[PATCH 2/3] submodule-config: keep `depth` around
From: Stefan Beller <hidden>
Date: 2016-06-16 02:19:36
Subsystem:
the rest · Maintainer:
Linus Torvalds
The depth field will be used in a later patch by `submodule update`. To differentiate between the actual depth (which may be different), we name it recommended depth as the field in the .gitmodules file is only a recommendation by the project. Signed-off-by: Stefan Beller <redacted> --- submodule-config.c | 16 ++++++++++++++++ submodule-config.h | 1 + 2 files changed, 17 insertions(+)
diff --git a/submodule-config.c b/submodule-config.c
index debab29..e65a171 100644
--- a/submodule-config.c
+++ b/submodule-config.c@@ -199,6 +199,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->recommended_depth = -1; hashcpy(submodule->gitmodules_sha1, gitmodules_sha1);
@@ -353,6 +354,21 @@ static int parse_config(const char *var, const char *value, void *data) else if (parse_submodule_update_strategy(value, &submodule->update_strategy) < 0) die(_("invalid value for %s"), var); + } else if (!strcmp(item.buf, "depth")) { + if (!value) + ret = config_error_nonbool(var); + else if (!me->overwrite && + submodule->recommended_depth != -1) + warn_multiple_config(me->commit_sha1, submodule->name, + "depth"); + else { + int d = strtol(value, NULL, 0); + if (d < 0) + warning("Invalid parameter '%s' for config option " + "'submodule.%s.depth'", value, var); + else + submodule->recommended_depth = d; + } } strbuf_release(&name);
diff --git a/submodule-config.h b/submodule-config.h
index e4857f5..5635b6c 100644
--- a/submodule-config.h
+++ b/submodule-config.h@@ -15,6 +15,7 @@ struct submodule { const char *url; int fetch_recurse; const char *ignore; + int recommended_depth; struct submodule_update_strategy update_strategy; /* the sha1 blob id of the responsible .gitmodules file */ unsigned char gitmodules_sha1[20];
--
2.9.0.rc0.3.g892bdd0.dirty