Am 01.09.2017 um 19:11 schrieb Stefan Beller: > On Fri, Sep 1, 2017 at 12:29 AM, Nicolas Morey-Chaisemartin > <nicolas@xxxxxxxxxxxxxxxxxxxxxx> wrote: >> git pull used to not parse the submodule.recurse config option and simply >> consider the --recurse-submodules CLI option. >> When using the config option, submodules would only be fetched recursively >> while the CLi option would tigger both fetch and update/merge. >> >> Reported-by: Magnus Homann <magnus@xxxxxxxxx> >> Signed-off-by: Nicolas Morey-Chaisemartin <nicolas@xxxxxxxxxxxxxxxxxxxxxx> > > Reviewed-by: Stefan Beller <sbeller@xxxxxxxxxx> > > Thanks, > Stefan > > >> --- >> builtin/pull.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/builtin/pull.c b/builtin/pull.c >> index 7fe281414..e4edf23c5 100644 >> --- a/builtin/pull.c >> +++ b/builtin/pull.c >> @@ -326,6 +326,11 @@ static int git_pull_config(const char *var, const char *value, void *cb) >> config_autostash = git_config_bool(var, value); >> return 0; >> } >> + if (!strcmp(var, "submodule.recurse")) { >> + int r = git_config_bool(var, value) ? >> + RECURSE_SUBMODULES_ON : RECURSE_SUBMODULES_OFF;>> + recurse_submodules = r; A few nits to pick: Why not assign directly to recurse_submodules? The variable r is only set once and read once, and doesn't have a particularly descriptive name that would justify having it. builtin/fetch.c::git_fetch_config(), builtin/push.c::git_push_config() and submodule.c::git_default_submodule_config() do the same, and I can't infer why for them either. And why fall through to git_default_config() here even though we know that it won't match "submodule.recurse" again? Config functions are usually exit early on finding a match, as the "rebase.autostash" handler above does. >> + } >> return git_default_config(var, value, cb); >> } >> >> -- >> 2.14.1.460.g196d2604f >>