summaryrefslogtreecommitdiff
path: root/remote.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2012-07-22 13:04:25 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2012-07-22 13:04:25 -0700
commitb120079113c62cf52a23e0d84760b5405bcf6b2e (patch)
tree0e8207135262390f383d8c23e9ed72df39dfa6fb /remote.c
parentMerge branch 'ar/clone-honor-umask-at-top' into maint (diff)
parentpush: don't guess at qualifying remote refs on deletion (diff)
downloadtgif-b120079113c62cf52a23e0d84760b5405bcf6b2e.tar.xz
Merge branch 'jk/push-delete-ref-error-message' into maint
The error message from "git push $there :bogo" (and its equivalent "git push $there --delete bogo") mentioned that we tried and failed to guess what ref is being deleted based on the LHS of the refspec, which we don't. * 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