summaryrefslogtreecommitdiff
path: root/remote.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-07-13 21:22:12 -0700
committerJunio C Hamano <gitster@pobox.com>2012-07-13 21:22:12 -0700
commitf06d47e7e0d9db709ee204ed13a8a7486149f494 (patch)
tree6b7bc5bf37c576c1d2e0920541c45c1157c02eca /remote.c
parent48c42ff66244f754cc02d9bcca0962c791c7d57e (diff)
parent5742c82ba76b6526639f08b5c7554fd15271087e (diff)
downloadgit-f06d47e7e0d9db709ee204ed13a8a7486149f494.tar.gz
Merge branch 'jk/push-delete-ref-error-message'
The error message from "git push $there :bogo" mentioned we tried and failed to guess what ref is being deleted based on the LHS of the refspec, which we don't. # By Jeff King * jk/push-delete-ref-error-message: push: don't guess at qualifying remote refs on deletion
Diffstat (limited to 'remote.c')
-rw-r--r--remote.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/remote.c b/remote.c
index 6833538829..04fd9ea4bd 100644
--- a/remote.c
+++ b/remote.c
@@ -1100,6 +1100,9 @@ static int match_explicit(struct ref *src, struct ref *dst,
case 0:
if (!memcmp(dst_value, "refs/", 5))
matched_dst = make_linked_ref(dst_value, dst_tail);
+ else if (is_null_sha1(matched_src->new_sha1))
+ error("unable to delete '%s': remote ref does not exist",
+ dst_value);
else if ((dst_guess = guess_ref(dst_value, matched_src)))
matched_dst = make_linked_ref(dst_guess, dst_tail);
else