diff mbox series

transport: respect verbosity when setting upstream

Message ID 20210415123353.14686-1-oystwa@gmail.com (mailing list archive)
State Accepted
Commit 9466d4ef3814a298801aa32c31d1e319f9c5472e
Headers show
Series transport: respect verbosity when setting upstream | expand

Commit Message

Øystein Walle April 15, 2021, 12:33 p.m. UTC
A command such as `git push -qu origin feature` will print "Branch
'feature' set up to track remote branch 'feature' from 'origin'." even
when --quiet is passed. In this case it's because install_branch_config() is
always called with BRANCH_CONFIG_VERBOSE.

struct transport keeps track of the desired verbosity. Fix the above
issue by passing BRANCH_CONFIG_VERBOSE conditionally based on that.

Signed-off-by: Øystein Walle <oystwa@gmail.com>
---
 t/t5523-push-upstream.sh |  7 +++++++
 transport.c              | 10 +++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

Comments

Eric Sunshine April 15, 2021, 3:29 p.m. UTC | #1
On Thu, Apr 15, 2021 at 8:34 AM Øystein Walle <oystwa@gmail.com> wrote:
> A command such as `git push -qu origin feature` will print "Branch
> 'feature' set up to track remote branch 'feature' from 'origin'." even
> when --quiet is passed. In this case it's because install_branch_config() is
> always called with BRANCH_CONFIG_VERBOSE.
>
> struct transport keeps track of the desired verbosity. Fix the above
> issue by passing BRANCH_CONFIG_VERBOSE conditionally based on that.
>
> Signed-off-by: Øystein Walle <oystwa@gmail.com>
> ---
> diff --git a/t/t5523-push-upstream.sh b/t/t5523-push-upstream.sh
> @@ -119,4 +119,11 @@ test_expect_success TTY 'quiet push' '
> +test_expect_success TTY 'quiet push -u' '
> +       ensure_fresh_upstream &&
> +
> +       test_terminal git push --quiet -u --no-progress upstream main 2>&1 | tee output &&
> +       test_must_be_empty output
> +'

I wondered why you used `tee` here since it adds no value (as far as I
can tell), but I see that you copied it from the test preceding this
one. So... [intentionally left blank]
Øystein Walle April 16, 2021, 1:38 p.m. UTC | #2
On Thu, 15 Apr 2021 at 17:29, Eric Sunshine <sunshine@sunshineco.com> wrote:

> I wondered why you used `tee` here since it adds no value (as far as I
> can tell), but I see that you copied it from the test preceding this
> one. So... [intentionally left blank]

Indeed, I wondered about that too; it seems a plain redirection will do
the trick. But a mix of laziness and not second-guessing others' work made
me leave it as it is.

Øsse
Junio C Hamano April 16, 2021, 6:48 p.m. UTC | #3
Øystein Walle <oystwa@gmail.com> writes:

> On Thu, 15 Apr 2021 at 17:29, Eric Sunshine <sunshine@sunshineco.com> wrote:
>
>> I wondered why you used `tee` here since it adds no value (as far as I
>> can tell), but I see that you copied it from the test preceding this
>> one. So... [intentionally left blank]
>
> Indeed, I wondered about that too; it seems a plain redirection will do
> the trick. But a mix of laziness and not second-guessing others' work made
> me leave it as it is.

Let's agree to mark it as #leftoverbits then?

Thanks for a fix, additional tests, and a good review.
diff mbox series

Patch

diff --git a/t/t5523-push-upstream.sh b/t/t5523-push-upstream.sh
index 9fbe7f784d..fdb4292056 100755
--- a/t/t5523-push-upstream.sh
+++ b/t/t5523-push-upstream.sh
@@ -119,4 +119,11 @@  test_expect_success TTY 'quiet push' '
 	test_must_be_empty output
 '
 
+test_expect_success TTY 'quiet push -u' '
+	ensure_fresh_upstream &&
+
+	test_terminal git push --quiet -u --no-progress upstream main 2>&1 | tee output &&
+	test_must_be_empty output
+'
+
 test_done
diff --git a/transport.c b/transport.c
index ef66e73090..62b6eeed21 100644
--- a/transport.c
+++ b/transport.c
@@ -108,11 +108,11 @@  static void set_upstreams(struct transport *transport, struct ref *refs,
 		if (!remotename || !starts_with(remotename, "refs/heads/"))
 			continue;
 
-		if (!pretend)
-			install_branch_config(BRANCH_CONFIG_VERBOSE,
-				localname + 11, transport->remote->name,
-				remotename);
-		else
+		if (!pretend) {
+			int flag = transport->verbose < 0 ? 0 : BRANCH_CONFIG_VERBOSE;
+			install_branch_config(flag, localname + 11,
+				transport->remote->name, remotename);
+		} else if (transport->verbose >= 0)
 			printf(_("Would set upstream of '%s' to '%s' of '%s'\n"),
 				localname + 11, remotename + 11,
 				transport->remote->name);