On Fri, Nov 9, 2012 at 12:38 PM, Jeff King <peff@xxxxxxxx> wrote: > On Sun, Nov 04, 2012 at 09:08:23PM -0600, Chris Rorvick wrote: > >> Patch series to prevent push from updating remote tags w/o forcing them. >> Split out original patch to ease review. >> >> Chris Rorvick (5): >> push: return reject reasons via a mask >> push: add advice for rejected tag reference >> push: flag updates >> push: flag updates that require force >> push: update remote tags only with force >> >> Documentation/git-push.txt | 10 +++++----- >> builtin/push.c | 24 +++++++++++++++--------- >> builtin/send-pack.c | 6 ++++++ >> cache.h | 7 ++++++- >> remote.c | 39 +++++++++++++++++++++++++++++++-------- >> t/t5516-fetch-push.sh | 30 +++++++++++++++++++++++++++++- >> transport-helper.c | 6 ++++++ >> transport.c | 25 +++++++++++++++---------- >> transport.h | 10 ++++++---- >> 9 files changed, 119 insertions(+), 38 deletions(-) > > I have not looked carefully at this topic yet, but I did try merging it > to "pu" and found that it had some textual conflicts with the > nd/builtin-to-libgit topic, which moves some builtin/send-pack.c code to > send-pack.c. Since I am graduating that topic to master, I went ahead > and just rebased your topic on top. > > If you do a re-roll, please use an updated master, and feel free to > grab (and double-check!) the rebase I am about to send out in 'pu'. I > also included the minor signed/unsigned pointer warning fixup in the > rebase, too. > > -Peff Thanks, I've rebased and checked against the changes in pu. Looks good to me. I have a couple of other minor fixes (see below for details.) I'll include these in an update if there is sufficient interest in this. Chris -- 8< -- diff --git a/remote.c b/remote.c index fde2a79..b025a38 100644 --- a/remote.c +++ b/remote.c @@ -1351,9 +1351,8 @@ void set_ref_status_for_push(struct ref *remote_refs, int send if (ref->update) { ref->nonfastforward = - ref->update && - (!has_sha1_file(ref->old_sha1) - || !ref_newer(ref->new_sha1, ref->old_sha1)); + !has_sha1_file(ref->old_sha1) + || !ref_newer(ref->new_sha1, ref->old_sha1); if (!ref->forwardable) { ref->requires_force = 1; diff --git a/transport.c b/transport.c index c183971..a380ad7 100644 --- a/transport.c +++ b/transport.c @@ -749,7 +749,7 @@ void transport_print_push_status(const char *dest, struct ref *r else *reject_mask |= REJECT_NON_FF_OTHER; } else if (ref->status == REF_STATUS_REJECT_ALREADY_EXISTS) { - *reject_mask |= REJECT_ALREADY_EXISTS; + *reject_mask |= REJECT_ALREADY_EXISTS; } } } -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html