Skip to content
  • Junio C Hamano's avatar
    Merge branch 'jc/push-cas' · 2233ad45
    Junio C Hamano authored
    Allow a safer "rewind of the remote tip" push than blind "--force",
    by requiring that the overwritten remote ref to be unchanged since
    the new history to replace it was prepared.
    
    The machinery is more or less ready.  The "--force" option is again
    the big red button to override any safety, thanks to J6t's sanity
    (the original round allowed --lockref to defeat --force).
    
    The logic to choose the default implemented here is fragile
    (e.g. "git fetch" after seeing a failure will update the
    remote-tracking branch and will make the next "push" pass,
    defeating the safety pretty easily).  It is suitable only for the
    simplest workflows, and it may hurt users more than it helps them.
    
    * jc/push-cas:
      push: teach --force-with-lease to smart-http transport
      send-pack: fix parsing of --force-with-lease option
      t5540/5541: smart-http does not support "--force-with-lease"
      t5533: test "push --force-with-lease"
      push --force-with-lease: tie it all together
      push --force-with-lease: implement logic to populate old_sha1_expect[]
      remote.c: add command line option parser for "--force-with-lease"
      builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
      cache.h: move remote/connect API out of it
    2233ad45