git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 0/5] push: update remote tags only with force

From
Chris Rorvick <chris@rorvick.com>
Date
Nov 10, 2012, 01:15 UTC
Message-ID
<CAEUsAPbmimoEVoJjvXkOFacs-X6hu5b0NO1sHZ9eSSRM07yPFA@mail.gmail.com>
In-Reply-To
<20121109183834.GB22164@sigill.intra.peff.net>
On Fri, Nov 9, 2012 at 12:38 PM, Jeff King <peff@peff.net> wrote:
Show 35 quoted lines
> 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;
                }
        }
 }
Previous: Jeff King
Message 9 of 9 in “push: update remote tags only with force”
  1. 0/5 push: update remote tags only with forceChris Rorvick, Nov 5, 2012
  2. 1/5 push: return reject reasons via a maskChris Rorvick, Nov 5, 2012
  3. Jeff KingNov 9, 2012
  4. 2/5 push: add advice for rejected tag referenceChris Rorvick, Nov 5, 2012
  5. 3/5 push: flag updatesChris Rorvick, Nov 5, 2012
  6. 4/5 push: flag updates that require forceChris Rorvick, Nov 5, 2012
  7. 5/5 push: update remote tags only with forceChris Rorvick, Nov 5, 2012
  8. Jeff KingNov 9, 2012
  9. Chris RorvickNov 10, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.