summaryrefslogtreecommitdiff
path: root/connect.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-12-26 07:18:37 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-12-28 02:04:14 (GMT)
commitcfee10a773be0f8d0024f2567164c910d4213244 (patch)
tree7f8562e817c43a9b614d3cc1628e8321a2e63b09 /connect.c
parent9b88fcef7dd6327cc3aba3927e56fef6f6c4d628 (diff)
downloadgit-cfee10a773be0f8d0024f2567164c910d4213244.zip
git-cfee10a773be0f8d0024f2567164c910d4213244.tar.gz
git-cfee10a773be0f8d0024f2567164c910d4213244.tar.bz2
send-pack/receive-pack: allow errors to be reported back to pusher.
This updates the protocol between git-send-pack/git-receive-pack in a backward compatible way to allow failures at the receiving end to be propagated back to the sender. Most notably, versions of git-push before this could not notice if the update hook on the receiving end refused to update the ref for its own policy reasons. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'connect.c')
-rw-r--r--connect.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/connect.c b/connect.c
index 6b6d613..d6f4e4c 100644
--- a/connect.c
+++ b/connect.c
@@ -34,10 +34,6 @@ struct ref **get_remote_heads(int in, struct ref **list,
die("protocol error: expected sha/ref, got '%s'", buffer);
name = buffer + 41;
- if (ignore_funny && 45 < len && !memcmp(name, "refs/", 5) &&
- check_ref_format(name + 5))
- continue;
-
name_len = strlen(name);
if (len != name_len + 41) {
if (server_capabilities)
@@ -45,6 +41,10 @@ struct ref **get_remote_heads(int in, struct ref **list,
server_capabilities = strdup(name + name_len + 1);
}
+ if (ignore_funny && 45 < len && !memcmp(name, "refs/", 5) &&
+ check_ref_format(name + 5))
+ continue;
+
if (nr_match && !path_match(name, nr_match, match))
continue;
ref = xcalloc(1, sizeof(*ref) + len - 40);