From: Chris Rorvick <chris@rorvick.com>
To: git@vger.kernel.org
Cc: Chris Rorvick <chris@rorvick.com>,
Angelo Borsotti <angelo.borsotti@gmail.com>,
Drew Northup <n1xim.email@gmail.com>,
Michael Haggerty <mhagger@alum.mit.edu>,
Philip Oakley <philipoakley@iee.org>,
Johannes Sixt <j6t@kdbg.org>,
Kacper Kornet <draenog@pld-linux.org>, Jeff King <peff@peff.net>,
Felipe Contreras <felipe.contreras@gmail.com>
Subject: [PATCH v3 3/5] push: flag updates
Date: Sun, 11 Nov 2012 22:08:06 -0600 [thread overview]
Message-ID: <1352693288-7396-4-git-send-email-chris@rorvick.com> (raw)
In-Reply-To: <1352693288-7396-1-git-send-email-chris@rorvick.com>
If the reference exists on the remote and the the update is not a
delete, then mark as an update. This is in preparation for handling
tags and branches differently when pushing.
Signed-off-by: Chris Rorvick <chris@rorvick.com>
---
cache.h | 1 +
remote.c | 18 +++++++++++-------
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/cache.h b/cache.h
index 4e25840..9712d1b 100644
--- a/cache.h
+++ b/cache.h
@@ -1003,6 +1003,7 @@ struct ref {
merge:1,
nonfastforward:1,
forwardable:1,
+ update:1,
deletion:1;
enum {
REF_STATUS_NONE = 0,
diff --git a/remote.c b/remote.c
index 5ecd58d..7fa9db6 100644
--- a/remote.c
+++ b/remote.c
@@ -1323,15 +1323,19 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
old->type == OBJ_COMMIT && new->type == OBJ_COMMIT);
}
- ref->nonfastforward =
+ ref->update =
!ref->deletion &&
- !is_null_sha1(ref->old_sha1) &&
- (!has_sha1_file(ref->old_sha1)
- || !ref_newer(ref->new_sha1, ref->old_sha1));
+ !is_null_sha1(ref->old_sha1);
- if (ref->nonfastforward && !ref->force && !force_update) {
- ref->status = REF_STATUS_REJECT_NONFASTFORWARD;
- continue;
+ if (ref->update) {
+ ref->nonfastforward =
+ !has_sha1_file(ref->old_sha1)
+ || !ref_newer(ref->new_sha1, ref->old_sha1);
+
+ if (ref->nonfastforward && !ref->force && !force_update) {
+ ref->status = REF_STATUS_REJECT_NONFASTFORWARD;
+ continue;
+ }
}
}
}
--
1.8.0
next prev parent reply other threads:[~2012-11-12 4:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-12 4:08 [PATCH v3 0/5] push: update remote tags only with force Chris Rorvick
2012-11-12 4:08 ` [PATCH v3 1/5] push: return reject reasons via a mask Chris Rorvick
2012-11-12 4:08 ` [PATCH v3 2/5] push: add advice for rejected tag reference Chris Rorvick
2012-11-12 4:08 ` Chris Rorvick [this message]
2012-11-12 4:08 ` [PATCH v3 4/5] push: flag updates that require force Chris Rorvick
2012-11-12 4:08 ` [PATCH v3 5/5] push: update remote tags only with force Chris Rorvick
2012-11-13 21:20 ` [PATCH v3 0/5] " Junio C Hamano
[not found] ` <CAEUsAPYvrR6WsVWCvwoEWA21gzL6Sib0sTyx-c_2tH=8ni69yQ@mail.gmail.com>
2012-11-14 6:29 ` Chris Rorvick
2012-11-14 8:19 ` Kacper Kornet
2012-11-14 13:22 ` Junio C Hamano
2012-11-14 14:58 ` Angelo Borsotti
2012-11-14 17:32 ` Junio C Hamano
2012-11-14 23:43 ` Angelo Borsotti
2012-11-15 0:09 ` Junio C Hamano
2012-11-15 7:48 ` Angelo Borsotti
2012-11-15 16:50 ` Junio C Hamano
2012-11-13 23:58 ` Drew Northup
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1352693288-7396-4-git-send-email-chris@rorvick.com \
--to=chris@rorvick.com \
--cc=angelo.borsotti@gmail.com \
--cc=draenog@pld-linux.org \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=mhagger@alum.mit.edu \
--cc=n1xim.email@gmail.com \
--cc=peff@peff.net \
--cc=philipoakley@iee.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.