fetch: don't overlay config with submodule-config

Don't rely on overlaying the repository's config on top of the
submodule-config, instead query the repository's config directly for the
fetch_recurse field.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Williams 2017-08-03 11:19:51 -07:00 committed by Junio C Hamano
parent ec6141a0f2
commit 492c6c46da
2 changed files with 17 additions and 8 deletions

View File

@ -1362,7 +1362,6 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
if (recurse_submodules != RECURSE_SUBMODULES_OFF) { if (recurse_submodules != RECURSE_SUBMODULES_OFF) {
gitmodules_config(); gitmodules_config();
git_config(submodule_config, NULL);
} }
if (all) { if (all) {

View File

@ -1194,14 +1194,24 @@ static int get_next_submodule(struct child_process *cp,
default_argv = "yes"; default_argv = "yes";
if (spf->command_line_option == RECURSE_SUBMODULES_DEFAULT) { if (spf->command_line_option == RECURSE_SUBMODULES_DEFAULT) {
if (submodule && int fetch_recurse = RECURSE_SUBMODULES_NONE;
submodule->fetch_recurse !=
RECURSE_SUBMODULES_NONE) { if (submodule) {
if (submodule->fetch_recurse == char *key;
RECURSE_SUBMODULES_OFF) const char *value;
fetch_recurse = submodule->fetch_recurse;
key = xstrfmt("submodule.%s.fetchRecurseSubmodules", submodule->name);
if (!repo_config_get_string_const(the_repository, key, &value)) {
fetch_recurse = parse_fetch_recurse_submodules_arg(key, value);
}
free(key);
}
if (fetch_recurse != RECURSE_SUBMODULES_NONE) {
if (fetch_recurse == RECURSE_SUBMODULES_OFF)
continue; continue;
if (submodule->fetch_recurse == if (fetch_recurse == RECURSE_SUBMODULES_ON_DEMAND) {
RECURSE_SUBMODULES_ON_DEMAND) {
if (!unsorted_string_list_lookup(&changed_submodule_paths, ce->name)) if (!unsorted_string_list_lookup(&changed_submodule_paths, ce->name))
continue; continue;
default_argv = "on-demand"; default_argv = "on-demand";