]> git.ipfire.org Git - thirdparty/git.git/commit - transport.c
push: parse and set flag for "--force-if-includes"
authorSrinidhi Kaushik <shrinidhi.kaushik@gmail.com>
Sat, 3 Oct 2020 12:10:45 +0000 (17:40 +0530)
committerJunio C Hamano <gitster@pobox.com>
Sat, 3 Oct 2020 16:59:19 +0000 (09:59 -0700)
commit3b990aa645d1169b7373d12cbf1511ca4633e349
tree392838f3dc148baa81116708924b44a3e900b778
parent99a1f9ae10816c2527d7197a5dde714f980b712b
push: parse and set flag for "--force-if-includes"

The previous commit added the necessary machinery to implement the
"--force-if-includes" protection, when "--force-with-lease" is used
without giving exact object the remote still ought to have. Surface
the feature by adding a command line option and a configuration
variable to enable it.

 - Add a flag: "TRANSPORT_PUSH_FORCE_IF_INCLUDES" to indicate that the
   new option was passed from the command line of via configuration
   settings; update command line and configuration parsers to set the
   new flag accordingly.

 - Introduce a new configuration option "push.useForceIfIncludes", which
   is equivalent to setting "--force-if-includes" in the command line.

 - Update "remote-curl" to recognize and pass this option to "send-pack"
   when enabled.

 - Update "advise" to catch the reject reason "REJECT_REF_NEEDS_UPDATE",
   set when the ref status is "REF_STATUS_REJECT_REMOTE_UPDATED" and
   (optionally) print a help message when the push fails.

 - The new option is a "no-op" in the following scenarios:
    * When used without "--force-with-lease".
    * When used with "--force-with-lease", and if the expected commit
      on the remote side is specified as an argument.

Signed-off-by: Srinidhi Kaushik <shrinidhi.kaushik@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
advice.c
advice.h
builtin/push.c
builtin/send-pack.c
remote-curl.c
transport-helper.c
transport.c
transport.h