Subject: [PATCH] http-push: Fix error message for push <remote> :<branch>

From: Clemens Buchacher <[email-masked]>
Date: Mon, 18 Feb 2008 14:07:26 +0100

git http-push <remote> :<branch> currently fails with the error message
"cannot happen anymore". Print a more useful error message instead.

Signed-off-by: Clemens Buchacher <[email-masked]>
---

We should actually support this feature, of course. Unfortunately, a lot has
changed since the version of send-pack which http-push is based on
(v1.2.4-398-gaa1dbc9). I think http-push should be updated to reflect these
changes at a larger scope. Is there any work going on in this direction?

 http-push.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/http-push.c b/http-push.c
index f9b77d6..8de091f 100644
--- a/http-push.c
+++ b/http-push.c
@@ -2311,6 +2311,15 @@ int main(int argc, char **argv)
 
 		if (!ref->peer_ref)
 			continue;
+
+		if (is_zero_sha1(ref->peer_ref->new_sha1)) {
+			error("Deleting remote branches via :<branch> is not "
+				"currently supported by http-push. Use git "
+				"http-push -d <remote-url> <branch> instead.");
+			rc = -2;
+			continue;
+		}
+
 		if (!hashcmp(ref->old_sha1, ref->peer_ref->new_sha1)) {
 			if (push_verbosely || 1)
 				fprintf(stderr, "'%s': up-to-date\n", ref->name);
-- 
1.5.4.2.183.g1ae81