summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--remote.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/remote.c b/remote.c
index b296d17404..6b07e580ae 100644
--- a/remote.c
+++ b/remote.c
@@ -1078,6 +1078,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