summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2007-11-17 12:56:03 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-11-17 20:10:50 (GMT)
commitca74c458a3908314cf29b96f1c43fe2b2597de76 (patch)
treecedfe6678e2534fcbb563365775c63e12da51e0f /cache.h
parent1f0e2a1a65477c2b8eb8812e5bf0ad07bf03738e (diff)
downloadgit-ca74c458a3908314cf29b96f1c43fe2b2597de76.zip
git-ca74c458a3908314cf29b96f1c43fe2b2597de76.tar.gz
git-ca74c458a3908314cf29b96f1c43fe2b2597de76.tar.bz2
send-pack: assign remote errors to each ref
This lets us show remote errors (e.g., a denied hook) along with the usual push output. There is a slightly clever optimization in receive_status that bears explanation. We need to correlate the returned status and our ref objects, which naively could be an O(m*n) operation. However, since the current implementation of receive-pack returns the errors to us in the same order that we sent them, we optimistically look for the next ref to be looked up to come after the last one we have found. So it should be an O(m+n) merge if the receive-pack behavior holds, but we fall back to a correct but slower behavior if it should change. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/cache.h b/cache.h
index 6663ec5..81e8c88 100644
--- a/cache.h
+++ b/cache.h
@@ -503,7 +503,9 @@ struct ref {
REF_STATUS_REJECT_NONFASTFORWARD,
REF_STATUS_REJECT_NODELETE,
REF_STATUS_UPTODATE,
+ REF_STATUS_REMOTE_REJECT,
} status;
+ char *error;
struct ref *peer_ref; /* when renaming */
char name[FLEX_ARRAY]; /* more */
};