Junio C Hamano <gitster@xxxxxxxxx> writes: > Carlo Wood <carlo@xxxxxxxxxx> writes: > >> In a project containing submodules, one of the submodules >> contains a submodule itself, which in turn also contains >> a submodule. >> >> Overview: >> >> project/foobar [submodule] >> project/cwm4 [submodule] >> project/evio [submodule] >> project/evio/protocol/matrixssl [submodule] >> project/evio/protocol/matrixssl/cwm4 [submodule] >> >> ('protocol' is a normal subdirectory) >> >> Running (with or without the --quiet), >> >> $ git submodule --quiet update --init --recursive --remote >> Fetching submodule protocol/matrixssl >> Fetching submodule protocol/matrixssl/cwm4 >> Fetching submodule cwm4 >> >> This is odd (a bug imho) because >> >> 1) it seems to only print this fetching information for submodules inside submodules, >> not for the top-level submodules. >> 2) it even prints this when using --quiet >> 3) it prints this every time (also when there is nothing more to fetch). > > > Sounds like a symptom of (a) the top-level "git submodule update" > knowing how to react to "--quiet" but (b) it forgets to pass down > the "--quiet" when it recursively runs "git submodule update" in its > submodules? Just a shot in the dark. Not even compile tested ;-) submodule.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/submodule.c b/submodule.c index 9da7181321..535bb6bf04 100644 --- a/submodule.c +++ b/submodule.c @@ -1454,11 +1454,12 @@ static int get_next_submodule(struct child_process *cp, argv_array_pushv(&cp->args, spf->args.argv); argv_array_push(&cp->args, default_argv); argv_array_push(&cp->args, "--submodule-prefix"); - strbuf_addf(&submodule_prefix, "%s%s/", spf->prefix, task->sub->path); argv_array_push(&cp->args, submodule_prefix.buf); + if (spf->quiet) + argv_array_push(&cp->args, "--quiet"); spf->count++; *task_cb = task;