@@ -1786,12 +1786,18 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
free(anon);
}
- fetch_config_from_gitmodules(&submodule_fetch_jobs_config,
- &recurse_submodules);
git_config(git_fetch_config, NULL);
argc = parse_options(argc, argv, prefix,
builtin_fetch_options, builtin_fetch_usage, 0);
+ if (recurse_submodules != RECURSE_SUBMODULES_OFF) {
+ int *sfjc = submodule_fetch_jobs_config == -1
+ ? &submodule_fetch_jobs_config : NULL;
+ int *rs = recurse_submodules == RECURSE_SUBMODULES_DEFAULT
+ ? &recurse_submodules : NULL;
+
+ fetch_config_from_gitmodules(sfjc, rs);
+ }
if (deepen_relative) {
if (deepen_relative < 0)
@@ -776,10 +776,11 @@ struct fetch_config {
static int gitmodules_fetch_config(const char *var, const char *value, void *cb)
{
struct fetch_config *config = cb;
- if (!strcmp(var, "submodule.fetchjobs")) {
+ if (!strcmp(var, "submodule.fetchjobs") && config->max_children) {
*(config->max_children) = parse_submodule_fetchjobs(var, value);
return 0;
- } else if (!strcmp(var, "fetch.recursesubmodules")) {
+ } else if (!strcmp(var, "fetch.recursesubmodules") &&
+ config->recurse_submodules) {
*(config->recurse_submodules) = parse_fetch_recurse_submodules_arg(var, value);
return 0;
}
Signed-off-by: Jonathan Tan <jonathantanmy@google.com> --- builtin/fetch.c | 10 ++++++++-- submodule-config.c | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-)