git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Denton Liu <liu.denton@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v3 2/2] remote.c: remove BUG in show_push_unqualified_ref_name_error()
Date: Wed, 6 Aug 2025 08:14:26 +0200	[thread overview]
Message-ID: <aJLywm9xWQQUADH1@pks.im> (raw)
In-Reply-To: <938dfb8d4e37ef962c811d6e0f32122a2522deb5.1754455931.git.liu.denton@gmail.com>

On Tue, Aug 05, 2025 at 09:53:42PM -0700, Denton Liu wrote:
> diff --git a/remote.c b/remote.c
> index e965f022f1..465e0ea0eb 100644
> --- a/remote.c
> +++ b/remote.c
> @@ -1218,8 +1218,8 @@ static void show_push_unqualified_ref_name_error(const char *dst_value,
>  			 "'%s:refs/tags/%s'?"),
>  		       matched_src_name, dst_value);
>  	} else {
> -		BUG("'%s' should be commit/tag/tree/blob, is '%d'",
> -		    matched_src_name, type);
> +		advise(_("The <src> part of the refspec ('%s') is an object ID that doesn't exist.\n"),
> +		       matched_src_name);
>  	}
>  }

This reads a lot better, thanks. We could arguably convert the
if-else-chain into a switch to make all of this read a bit better, but
that is a subjective style change and definitely not something that you
have to do as part of this series.

Regarding the logic this looks sensible to me. We have already handled
all valid object types in the cases leading up to this final `else`, so
we can be sure that we weren't able to look up the object. And warning
about that case feels reasonable.

One thing I wondered is whether it's okay to not die anymore via
`BUG()`. The other error cases already don't die though, so this ought
to be fine. Going up the callchain shows that we do bubble up the error
as expected until we end up in `match_push_refs()`. There's multiple
callers of that function, and all except one perform error handling for
it.

The only exception is git-remote(1) in `get_push_ref_states()`, where it
gets executed via `git remote show $remote_name`. As far as I understand
we would end up not showing any references that are broken, and we would
print the above advise. Which I think is reasonable.

So all of this looks good to me, thanks!

Patrick

  reply	other threads:[~2025-08-06  6:14 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-04  9:42 [PATCH 0/2] remote.c: remove erroneous BUG case Denton Liu
2025-08-04  9:43 ` [PATCH 1/2] t5516: introduce 'push ref expression with non-existent oid src' Denton Liu
2025-08-04  9:43 ` [PATCH 2/2] remote.c: remove BUG in show_push_unqualified_ref_name_error() Denton Liu
2025-08-04 14:19   ` Junio C Hamano
2025-08-05  6:24 ` [PATCH v2 0/2] *** SUBJECT HERE *** Denton Liu
2025-08-05  6:24   ` [PATCH v2 1/2] t5516: introduce 'push ref expression with non-existent oid src' Denton Liu
2025-08-05 13:28     ` Patrick Steinhardt
2025-08-05 17:12       ` Junio C Hamano
2025-08-05  6:24   ` [PATCH v2 2/2] remote.c: remove BUG in show_push_unqualified_ref_name_error() Denton Liu
2025-08-05 13:27     ` Patrick Steinhardt
2025-08-06  4:53   ` [PATCH v3 0/2] remote.c: remove erroneous BUG case Denton Liu
2025-08-06  4:53     ` [PATCH v3 1/2] t5516: remove surrounding empty lines in test bodies Denton Liu
2025-08-06  6:14       ` Patrick Steinhardt
2025-08-06  4:53     ` [PATCH v3 2/2] remote.c: remove BUG in show_push_unqualified_ref_name_error() Denton Liu
2025-08-06  6:14       ` Patrick Steinhardt [this message]
2025-08-06 15:17         ` Junio C Hamano
2025-08-07  4:30           ` [PATCH] remote.c: convert if-else tower to switch Denton Liu
2025-08-07  4:38             ` Patrick Steinhardt
2025-08-07  9:20             ` [PATCH v2] " Denton Liu
2025-08-07 12:35               ` Ben Knoble
2025-08-07 17:19                 ` Eric Sunshine
2025-08-07 15:02             ` [PATCH] " Junio C Hamano
2025-08-08  4:41     ` [PATCH v4 0/3] remote.c: remove erroneous BUG case Denton Liu
2025-08-08  4:41       ` [PATCH v4 1/3] t5516: remove surrounding empty lines in test bodies Denton Liu
2025-08-08  4:41       ` [PATCH v4 2/3] remote.c: convert if-else ladder to switch Denton Liu
2025-08-08  5:43         ` Patrick Steinhardt
2025-08-08  7:14           ` Denton Liu
2025-08-08  4:41       ` [PATCH v4 3/3] remote.c: remove BUG in show_push_unqualified_ref_name_error() Denton Liu
2025-08-08  7:24       ` [PATCH v5 0/3] remote.c: remove erroneous BUG case Denton Liu
2025-08-08  7:24         ` [PATCH v5 1/3] t5516: remove surrounding empty lines in test bodies Denton Liu
2025-08-08  7:24         ` [PATCH v5 2/3] remote.c: remove BUG in show_push_unqualified_ref_name_error() Denton Liu
2025-08-08  7:24         ` [PATCH v5 3/3] remote.c: convert if-else ladder to switch Denton Liu
2025-08-08  7:28         ` [PATCH v5 0/3] remote.c: remove erroneous BUG case Patrick Steinhardt
2025-08-08 16:06           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aJLywm9xWQQUADH1@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=liu.denton@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).