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

[PATCH v2 0/3] push: allow pushing new branches with --force-with-lease

From
John Keeping <john@keeping.me.uk>
Date
Jul 25, 2016, 21:59 UTC
Message-ID
<cover.1469483499.git.john@keeping.me.uk>
In-Reply-To
<xmqq4m7d7hlq.fsf@gitster.mtv.corp.google.com>
On Mon, Jul 25, 2016 at 10:28:01AM -0700, Junio C Hamano wrote:
Show 21 quoted lines
> John Keeping <john@keeping.me.uk> writes:
> 
> > If there is no upstream information for a branch, it is likely that it
> > is newly created and can safely be pushed under the normal fast-forward
> > rules.  Relax the --force-with-lease check so that we do not reject
> > these branches immediately but rather attempt to push them as new
> > branches, using the null SHA-1 as the expected value.
> >
> > In fact, it is already possible to push new branches using the explicit
> > --force-with-lease=<branch>:<expect> syntax, so all we do here is make
> > this behaviour the default if no explicit "expect" value is specified.
> 
> I like the loss of an extra field from "struct ref".
> 
> I suspect that the if/else cascade in the loop in apply_cas() can
> also be taught that ':' followed by an empty string asks to check
> that the target ref does not exist, in order to make it a bit more
> useful for folks who do not rely on the "use the last observed
> status of the tracking branch".
> 
> That would make the "explicit" test much less cumbersome to read.

Yes, that's nicer and it mirrors the syntax for deleting a remote branch.

I've pulled it out as a preparatory step because I like the fact that the "explicit" test passes even before the patch that is the main point of the series.

Show 7 quoted lines
> > +test_expect_success 'new branch covered by force-with-lease (explicit)' '
> > +   setup_srcdst_basic &&
> > +   (
> > +           cd dst &&
> > +           git branch branch master &&
> > +           git push --force-with-lease=branch:0000000000000000000000000000000000000000 origin branch
> > +   ) &&
John Keeping (3):
  Documentation/git-push: fix placeholder formatting
  push: add shorthand for --force-with-lease branch creation
  push: allow pushing new branches with --force-with-lease
 Documentation/git-push.txt |  5 +++--
 remote.c                   |  9 +++++----
 remote.h                   |  1 -
 t/t5533-push-cas.sh        | 38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+), 7 deletions(-)
-- 
2.9.2.639.g855ae9f
Previous: Junio C HamanoNext: John Keeping
Message 3 of 19 in “push: allow pushing new branches with --force-with-lease”
  1. push: allow pushing new branches with --force-with-leaseJohn Keeping, Jul 23, 2016
  2. Junio C HamanoJul 25, 2016
  3. 0/3 push: allow pushing new branches with --force-with-leaseJohn Keeping, Jul 25, 2016
  4. 1/3 Documentation/git-push: fix placeholder formattingJohn Keeping, Jul 25, 2016
  5. 2/3 push: add shorthand for --force-with-lease branch creationJohn Keeping, Jul 25, 2016
  6. Junio C HamanoJul 25, 2016
  7. John KeepingJul 26, 2016
  8. Junio C HamanoJul 26, 2016
  9. John KeepingJul 26, 2016
  10. Junio C HamanoJul 26, 2016
  11. Jakub NarębskiJul 26, 2016
  12. John KeepingJul 26, 2016
  13. 3/3 push: allow pushing new branches with --force-with-leaseJohn Keeping, Jul 25, 2016
  14. Junio C HamanoJul 25, 2016
  15. 0/3 push: allow pushing new branches with --force-with-leaseJohn Keeping, Jul 26, 2016
  16. 1/3 Documentation/git-push: fix placeholder formattingJohn Keeping, Jul 26, 2016
  17. 2/3 push: add shorthand for --force-with-lease branch creationJohn Keeping, Jul 26, 2016
  18. 3/3 push: allow pushing new branches with --force-with-leaseJohn Keeping, Jul 26, 2016
  19. Junio C HamanoJul 25, 2016

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.