[PATCH 2/3] submodule-config: keep `depth` around
- From
Stefan Beller <sbeller@google.com>
- Date
- May 25, 2016, 22:00 UTC
- Message-ID
- <20160525220006.27138-3-sbeller@google.com>
- In-Reply-To
- <20160525220006.27138-1-sbeller@google.com>
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 <sbeller@google.com> --- 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