In a56771a668d (builtin/pull: respect verbosity settings in submodules, 2018-01-25), we made sure to pass on both quiet and verbose flag from builtin/pull.c to the submodule shell script. However git-submodule doesn't understand a verbose flag, which results in a bug when invoking git pull --recurse-submodules -v [...] There are a few different approaches to fix this bug: 1) rewrite 'argv_push_verbosity' or its caller in builtin/pull.c to cap opt_verbosity at 0. Then 'argv_push_verbosity' would only add '-q' if any. 2) Have a flag in 'argv_push_verbosity' that specifies if we allow adding -q or -v (or both). 3) Add -v to git-submodule.sh and make it a no-op (1) seems like a maintenance burden: What if we add code after the submodule operations or move submodule operations higher up, then we have altered the opt_verbosity setting further down the line in builtin/pull.c. (2) seems like it could work reasonably well without more regressions (3) seems easiest to implement as well as actually is a feature with the last-one-wins rule of passing flags to Git commands. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- On Tue, Aug 14, 2018 at 10:54 AM Jochen Kühner <jochen.kuehner@xxxxxx> wrote: > > If I set > git config --global submodule.recurse true > and run git via: > git pull --progress -v --no-rebase "origin" > The command will fail with following output (Errorlevel is 1) > Fetching submodule submodules/tstemplates > From http://10.0.102.194:7990/scm/mcc/tstemplates > = [up to date] feature/robin -> origin/feature/robin > = [up to date] master -> origin/master > Already up to date. > usage: git submodule [--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>] > or: git submodule [--quiet] status [--cached] [--recursive] [--] [<path>...] > or: git submodule [--quiet] init [--] [<path>...] > or: git submodule [--quiet] deinit [-f|--force] (--all| [--] <path>...) > or: git submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference <repository>] [--recursive] [--] [<path>...] > or: git submodule [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...] > or: git submodule [--quiet] foreach [--recursive] <command> > or: git submodule [--quiet] sync [--recursive] [--] [<path>...] > or: git submodule [--quiet] absorbgitdirs [--] [<path>...] > > seams that the “verbose” parameter “-v” is also sent to “git submodules” wich does not support it. > > If I remove “-v” it will work. > > Problem is, I use TortoiseGit, wich will automatically create this command! git-submodule.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/git-submodule.sh b/git-submodule.sh index 8b5ad59bdee..f7fd80345cd 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -438,6 +438,9 @@ cmd_update() -q|--quiet) GIT_QUIET=1 ;; + -v) + GIT_QUIET=0 + ;; --progress) progress=1 ;; -- 2.18.0.265.g16de1b435c9.dirty