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>
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user