git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / Atom feed
* git submodule update  strange output behavior.
@ 2020-01-09 18:20 Carlo Wood
  2020-01-09 18:54 ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Carlo Wood @ 2020-01-09 18:20 UTC (permalink / raw)
  To: git


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).

-- 
Carlo Wood <carlo@alinoe.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git submodule update  strange output behavior.
  2020-01-09 18:20 git submodule update strange output behavior Carlo Wood
@ 2020-01-09 18:54 ` Junio C Hamano
  2020-01-09 20:03   ` Junio C Hamano
  2020-01-10  9:10   ` Carlo Wood
  0 siblings, 2 replies; 7+ messages in thread
From: Junio C Hamano @ 2020-01-09 18:54 UTC (permalink / raw)
  To: Carlo Wood; +Cc: git

Carlo Wood <carlo@alinoe.com> 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?


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git submodule update  strange output behavior.
  2020-01-09 18:54 ` Junio C Hamano
@ 2020-01-09 20:03   ` Junio C Hamano
  2020-01-10  9:12     ` Carlo Wood
  2020-01-10  9:10   ` Carlo Wood
  1 sibling, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2020-01-09 20:03 UTC (permalink / raw)
  To: Carlo Wood; +Cc: git

Junio C Hamano <gitster@pobox.com> writes:

> Carlo Wood <carlo@alinoe.com> 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;

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git submodule update  strange output behavior.
  2020-01-09 18:54 ` Junio C Hamano
  2020-01-09 20:03   ` Junio C Hamano
@ 2020-01-10  9:10   ` Carlo Wood
  1 sibling, 0 replies; 7+ messages in thread
From: Carlo Wood @ 2020-01-10  9:10 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

That seems only part of the problem, but yes.

It is only part of the problem because without --quiet
I get the same output; that is - the top-level is still
quiet, but the submodules aren't. That is out of balance
imho.

On Thu, 09 Jan 2020 10:54:27 -0800
Junio C Hamano <gitster@pobox.com> wrote:

> Carlo Wood <carlo@alinoe.com> 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?
> 



-- 
Carlo Wood <carlo@alinoe.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git submodule update  strange output behavior.
  2020-01-09 20:03   ` Junio C Hamano
@ 2020-01-10  9:12     ` Carlo Wood
  2020-01-10 19:36       ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Carlo Wood @ 2020-01-10  9:12 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

It seems to me that the other part of the problem is printing
this output for submodules when nothing (needed to be) is fetched.

I haven't tested if output for the top-level is printed (without
--quiet) when also there fetching is needed; is that even possible?

On Thu, 09 Jan 2020 12:03:55 -0800
Junio C Hamano <gitster@pobox.com> wrote:

> Junio C Hamano <gitster@pobox.com> writes:
> 
> > Carlo Wood <carlo@alinoe.com> 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;



-- 
Carlo Wood <carlo@alinoe.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git submodule update  strange output behavior.
  2020-01-10  9:12     ` Carlo Wood
@ 2020-01-10 19:36       ` Junio C Hamano
  2020-01-11 11:00         ` Carlo Wood
  0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2020-01-10 19:36 UTC (permalink / raw)
  To: Carlo Wood; +Cc: git

Carlo Wood <carlo@alinoe.com> writes:

> It seems to me that the other part of the problem is printing
> this output for submodules when nothing (needed to be) is fetched.

Hmm, I am not sure if that is a reasonable expectation.  Would it be
possible to tell if there is something that needs to be fetched
without attempting to contact the other side?

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git submodule update  strange output behavior.
  2020-01-10 19:36       ` Junio C Hamano
@ 2020-01-11 11:00         ` Carlo Wood
  0 siblings, 0 replies; 7+ messages in thread
From: Carlo Wood @ 2020-01-11 11:00 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Fri, 10 Jan 2020 11:36:54 -0800
Junio C Hamano <gitster@pobox.com> wrote:

> Carlo Wood <carlo@alinoe.com> writes:
> 
> > It seems to me that the other part of the problem is printing
> > this output for submodules when nothing (needed to be) is fetched.  
> 
> Hmm, I am not sure if that is a reasonable expectation.  Would it be
> possible to tell if there is something that needs to be fetched
> without attempting to contact the other side?

That wasn't even my point though: assume that we can't know, so we
have to attempt a fetch anyway (seems indeed likely), then I'd
expect to see this message for *every* submodule, and not just
for submodules inside other submodule.

There is an asymmetry (in the output of this command) between
submodules in the top level project and submodules inside other
submodules.

This then makes me wonder after all, if the message is suppressed for
top-level submodules then can't it also be suppressed for the others
(those that are currently being printed)?

-- 
Carlo Wood <carlo@alinoe.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-09 18:20 git submodule update strange output behavior Carlo Wood
2020-01-09 18:54 ` Junio C Hamano
2020-01-09 20:03   ` Junio C Hamano
2020-01-10  9:12     ` Carlo Wood
2020-01-10 19:36       ` Junio C Hamano
2020-01-11 11:00         ` Carlo Wood
2020-01-10  9:10   ` Carlo Wood

git@vger.kernel.org list mirror (unofficial, one of many)

Archives are clonable:
	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Example config snippet for mirrors

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.io/gmane.comp.version-control.git

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git