summary refs log tree commit diff
path: root/send-pack.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-10-27 15:09:49 -0700
committerJunio C Hamano <gitster@pobox.com>2020-10-27 15:09:49 -0700
commitde0a7effc86aadf6177fdcea52b5ae24c7a85911 (patch)
tree4c542ec9c7c2b29ad2d1c1329602bc47dc40c4c5 /send-pack.c
parent52b8c8c7165987650bf873b878f20b14c33b268f (diff)
parent3b5bf96573b5773e64f7884607794c268b352992 (diff)
Merge branch 'sk/force-if-includes'
"git push --force-with-lease[=<ref>]" can easily be misused to lose
commits unless the user takes good care of their own "git fetch".
A new option "--force-if-includes" attempts to ensure that what is
being force-pushed was created after examining the commit at the
tip of the remote ref that is about to be force-replaced.

* sk/force-if-includes:
  t, doc: update tests, reference for "--force-if-includes"
  push: parse and set flag for "--force-if-includes"
  push: add reflog check for "--force-if-includes"
Diffstat (limited to 'send-pack.c')
-rw-r--r--send-pack.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/send-pack.c b/send-pack.c
index c9698070fc..eb4a44270b 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -299,6 +299,7 @@ static int check_to_send_update(const struct ref *ref, const struct send_pack_ar
 	case REF_STATUS_REJECT_FETCH_FIRST:
 	case REF_STATUS_REJECT_NEEDS_FORCE:
 	case REF_STATUS_REJECT_STALE:
+	case REF_STATUS_REJECT_REMOTE_UPDATED:
 	case REF_STATUS_REJECT_NODELETE:
 		return CHECK_REF_STATUS_REJECTED;
 	case REF_STATUS_UPTODATE: