Subject: [PATCH resend 2/3] transport-helper.c::push_refs(): know more about refs before pushing

From: Tay Ray Chuan <[email-masked]>
Date: Fri, 4 Dec 2009 14:57:55 +0800

Know about rejected non-fast-forward refs, in addition to up-to-date
ones, by calling set_ref_status_for_push() in remote.[ch], before
passing push commands to the helper.

Signed-off-by: Tay Ray Chuan <[email-masked]>
---
 transport-helper.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/transport-helper.c b/transport-helper.c
index 11f3d7e..6ed7b55 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -334,16 +334,12 @@ static int push_refs(struct transport *transport,
 		else if (!mirror)
 			continue;

-		ref->deletion = is_null_sha1(ref->new_sha1);
-		if (!ref->deletion &&
-			!hashcmp(ref->old_sha1, ref->new_sha1)) {
-			ref->status = REF_STATUS_UPTODATE;
-			continue;
-		}
-
 		if (force_all)
 			ref->force = 1;

+		if (set_ref_status_for_push(ref, force_all))
+			continue;
+
 		strbuf_addstr(&buf, "push ");
 		if (!ref->deletion) {
 			if (ref->force)
--
1.6.6.rc1.286.gbc15a