Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH] push: don't guess at qualifying remote refs on deletion

From: Jeff King <hidden>
Date: 2016-06-15 22:54:13

On Tue, Jul 03, 2012 at 12:38:10PM -0700, Junio C Hamano wrote:
Jeff King [off-list ref] writes:
quoted
Instead, we can just be more succinct and say "we can't
delete this because we couldn't find it". So before:

  $ git push origin :bogus
  error: unable to push to unqualified destination: bogus
  The destination refspec neither matches an existing ref on the remote nor
  begins with refs/, and we are unable to guess a prefix based on the source ref.
  error: failed to push some refs to '$URL'

and now:

  $ git push origin :bogus
  error: unable to delete 'bogus': remote ref does not exist
  error: failed to push some refs to '$URL'
This is telling a truth ($GIT_DIR/refs/bogus does not exist) but not
the whole truth; while I tend to agree that it is better than the
original (especially with ", and we are unable to guess..." part),
given that the above request would delete refs/tags/bogus or
refs/heads/bogus if they existed on the "origin", I am a bit worried
that it may send an incorrect message to novice users.

    unable to delete 'bogus': no branch or tag with that name

might allay my worries, but I am not extremely happy with that
wording, either.
I think the most accurate explanation of the behavior is "the
destination refspec does not match an existing ref, and it is not fully
qualified, so I didn't know what you meant to delete". But that is a
pretty awful message (only slightly less awful than the original one,
but I think that one is pretty bad).

The really interesting part is that we tried to match "bogus" against
all of the usual ref lookup rules, and it didn't match anything. But we
have the same issue when we say "git show bogus" and it does not match
anything, and we simply say "bad revision 'bogus'".

Maybe:

  unable to delete 'bogus': no matching remote ref found

would be a reasonably short way of saying that?

That still leaves out the second half, that it was not fully qualified
and therefore we could not even transmit an attempt to delete (even
though that attempt would clearly not succeed!). But that is really not
a subtlety that I think is worth putting in the error message, as it is
way more likely to confuse somebody.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help