# [PATCH] transport: report missing submodule pushes consistently on stderr

4 messages from 2016-08-23 to 2016-08-26. Participants: Stefan Beller, Leandro Lucarella.
Thread: https://gitlist.dev/t/43917

## Stefan Beller, 2016-08-23 21:40

Subject: [PATCH] transport: report missing submodule pushes consistently on stderr
Message-ID: <20160823214008.32331-1-sbeller@google.com>
URL: https://gitlist.dev/e/20160823214008.32331-1-sbeller%40google.com

```
The surrounding advice is printed to stderr, but the list of submodules
is not. Make the report consistent by reporting everything to stderr.

Signed-off-by: Stefan Beller <sbeller@google.com>
---

  This fixes one of the bugs mentioned in
  https://public-inbox.org/git/CAGZ79kbkyupBJfvyX3Hj_R5ZW36+3ufOnnLC-Dpic40nPJAxDA@mail.gmail.com/T/#t
  
  How to fix the other was not as obvious to me as I do not understand the
  philosophy on verbosity in the transport code.
  
  Thanks,
  Stefan

 transport.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/transport.c b/transport.c
index cf8de6e..94d6dc3 100644
--- a/transport.c
+++ b/transport.c
@@ -771,7 +771,7 @@ static void die_with_unpushed_submodules(struct string_list *needs_pushing)
 	fprintf(stderr, _("The following submodule paths contain changes that can\n"
 			"not be found on any remote:\n"));
 	for (i = 0; i < needs_pushing->nr; i++)
-		printf("  %s\n", needs_pushing->items[i].string);
+		fprintf(stderr, "  %s\n", needs_pushing->items[i].string);
 	fprintf(stderr, _("\nPlease try\n\n"
 			  "	git push --recurse-submodules=on-demand\n\n"
 			  "or cd to the path and use\n\n"
-- 
2.10.0.rc1.1.g1ceb01a


```

## Leandro Lucarella, 2016-08-24 10:28

Subject: Re: [PATCH] transport: report missing submodule pushes consistently on stderr
Message-ID: <20160824122828.0c2688e8@labs-064.localdomain>
URL: https://gitlist.dev/e/20160824122828.0c2688e8%40labs-064.localdomain
In-Reply-To: <20160823214008.32331-1-sbeller@google.com>

```
On Tue, 23 Aug 2016 14:40:08 -0700
Stefan Beller <sbeller@google.com> wrote:
> The surrounding advice is printed to stderr, but the list of
> submodules is not. Make the report consistent by reporting everything
> to stderr.
> 
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
> 
>   This fixes one of the bugs mentioned in
>   https://public-inbox.org/git/CAGZ79kbkyupBJfvyX3Hj_R5ZW36+3ufOnnLC-Dpic40nPJAxDA@mail.gmail.com/T/#t
>   
>   How to fix the other was not as obvious to me as I do not
> understand the philosophy on verbosity in the transport code.

I had a look and I would say just enclose all the fprintf() inside a:

	if (transport->verbose > 0)

But then this is the first time I look at the code. I was about to send
a patch too but it will conflict with this one :)

Anyway, thanks for the quick fix to the inconsistent printing with
--quiet.


-- 
Leandro Lucarella
Technical Development Lead
Sociomantic Labs GmbH <http://www.sociomantic.com>

```

## Stefan Beller, 2016-08-24 16:35

Subject: Re: [PATCH] transport: report missing submodule pushes consistently on stderr
Message-ID: <CAGZ79kb1ur=s+FYcdCh+obKyfaozX=adAPESu9G9FQxVtLTDbg@mail.gmail.com>
URL: https://gitlist.dev/e/CAGZ79kb1ur%3Ds%2BFYcdCh%2BobKyfaozX%3DadAPESu9G9FQxVtLTDbg%40mail.gmail.com
In-Reply-To: <20160824122828.0c2688e8@labs-064.localdomain>

```
On Wed, Aug 24, 2016 at 3:28 AM, Leandro Lucarella
<leandro.lucarella@sociomantic.com> wrote:
> On Tue, 23 Aug 2016 14:40:08 -0700
> Stefan Beller <sbeller@google.com> wrote:
>> The surrounding advice is printed to stderr, but the list of
>> submodules is not. Make the report consistent by reporting everything
>> to stderr.
>>
>> Signed-off-by: Stefan Beller <sbeller@google.com>
>> ---
>>
>>   This fixes one of the bugs mentioned in
>>   https://public-inbox.org/git/CAGZ79kbkyupBJfvyX3Hj_R5ZW36+3ufOnnLC-Dpic40nPJAxDA@mail.gmail.com/T/#t
>>
>>   How to fix the other was not as obvious to me as I do not
>> understand the philosophy on verbosity in the transport code.
>
> I had a look and I would say just enclose all the fprintf() inside a:
>
>         if (transport->verbose > 0)
>
> But then this is the first time I look at the code. I was about to send
> a patch too but it will conflict with this one :)

Well you can still send a patch :)

We have

    int verbose = (transport->verbose > 0);
    int quiet = (transport->verbose < 0);

So you're suggesting to only print these warnings when the
user asked for explicit verbose?

A few lines before the call to die_with_unpushed_submodules we have

     die ("Failed to push all needed submodules!");

which would also need a wrapping like

    if (quiet)
        return -1;
    else
        die(...);

Thanks,
Stefan

```

## Stefan Beller, 2016-08-26 22:21

Subject: Re: [PATCH] transport: report missing submodule pushes consistently on stderr
Message-ID: <CAGZ79kaT79WBfwbRw5bw9LOQgHThVOpn66siwr14kU7=ju2WZA@mail.gmail.com>
URL: https://gitlist.dev/e/CAGZ79kaT79WBfwbRw5bw9LOQgHThVOpn66siwr14kU7%3Dju2WZA%40mail.gmail.com
In-Reply-To: <CAGZ79kb1ur=s+FYcdCh+obKyfaozX=adAPESu9G9FQxVtLTDbg@mail.gmail.com>

```
On Wed, Aug 24, 2016 at 9:35 AM, Stefan Beller <sbeller@google.com> wrote:
> On Wed, Aug 24, 2016 at 3:28 AM, Leandro Lucarella
> <leandro.lucarella@sociomantic.com> wrote:
>> On Tue, 23 Aug 2016 14:40:08 -0700
>> Stefan Beller <sbeller@google.com> wrote:
>>> The surrounding advice is printed to stderr, but the list of
>>> submodules is not. Make the report consistent by reporting everything
>>> to stderr.
>>>
>>> Signed-off-by: Stefan Beller <sbeller@google.com>
>>> ---

So we seem to have dropped the ball on the followup; this patch nevertheless
is a good idea?

```
