From f2f60a5935e3673e6df2a45b25c961587d9a2186 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 6 Jul 2017 11:36:35 -0700 Subject: push: disable lazy --force-with-lease by default "git push --force-with-lease=:" makes sure that there is no unexpected changes to the branch at the remote while you prepare a rewrite based on the old state of the branch. This feature came with an experimental option that allows : part to be omitted by using the tip of remote-tracking branch that corresponds to the . It turns out that some people use third-party tools that fetch from remote and update the remote-tracking branches behind users' back, defeating the safety that relies on the stability of the remote-tracking branches. We have some warning text that was meant to sound scary in our documentation, but nevertheless people seem to be bitten. See https://public-inbox.org/git/1491617750.2149.10.camel@mattmccutchen.net/ for a recent example. Let's disable the forms that rely on the stability of remote-tracking branches by default, and allow users who _know_ their remote-tracking branches are stable to enable it with a configuration variable. This problem was predicted from the very beginning; see 28f5d176 (remote.c: add command line option parser for "--force-with-lease", 2013-07-08). Signed-off-by: Junio C Hamano --- builtin/send-pack.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'builtin/send-pack.c') diff --git a/builtin/send-pack.c b/builtin/send-pack.c index 633e0c3cdd..c008f5b60f 100644 --- a/builtin/send-pack.c +++ b/builtin/send-pack.c @@ -68,6 +68,11 @@ static void print_helper_status(struct ref *ref) msg = "stale info"; break; + case REF_STATUS_REJECT_LAZY_CAS: + res = "error"; + msg = "lazy force-with-error"; + break; + case REF_STATUS_REJECT_ALREADY_EXISTS: res = "error"; msg = "already exists"; -- cgit v1.2.1