From: Junio C Hamano Date: Wed, 10 Feb 2016 22:20:08 +0000 (-0800) Subject: Merge branch 'aw/push-force-with-lease-reporting' X-Git-Tag: v2.8.0-rc0~60 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/24abb31727e8e0b216bdee182dbbbbc43d134fa6?ds=inline;hp=-c Merge branch 'aw/push-force-with-lease-reporting' "git push --force-with-lease" has been taught to report if the push needed to force (or fast-forwarded). * aw/push-force-with-lease-reporting: push: fix ref status reporting for --force-with-lease --- 24abb31727e8e0b216bdee182dbbbbc43d134fa6 diff --combined remote.c index 35940a5602,3ceac07620..02e698a5e0 --- a/remote.c +++ b/remote.c @@@ -256,7 -256,7 +256,7 @@@ static void read_remotes_file(struct re if (!f) return; remote->origin = REMOTE_REMOTES; - while (strbuf_getline(&buf, f, '\n') != EOF) { + while (strbuf_getline(&buf, f) != EOF) { const char *v; strbuf_rtrim(&buf); @@@ -281,7 -281,7 +281,7 @@@ static void read_branches_file(struct r if (!f) return; - strbuf_getline(&buf, f, '\n'); + strbuf_getline_lf(&buf, f); fclose(f); strbuf_trim(&buf); if (!buf.len) { @@@ -428,9 -428,6 +428,9 @@@ static int handle_config(const char *ke } else if (!strcmp(subkey, ".proxy")) { return git_config_string((const char **)&remote->http_proxy, key, value); + } else if (!strcmp(subkey, ".proxyauthmethod")) { + return git_config_string((const char **)&remote->http_proxy_authmethod, + key, value); } else if (!strcmp(subkey, ".vcs")) { return git_config_string(&remote->foreign_vcs, key, value); } @@@ -1548,11 -1545,8 +1548,8 @@@ void set_ref_status_for_push(struct re } /* - * Bypass the usual "must fast-forward" check but - * replace it with a weaker "the old value must be - * this value we observed". If the remote ref has - * moved and is now different from what we expect, - * reject any push. + * If the remote ref has moved and is now different + * from what we expect, reject any push. * * It also is an error if the user told us to check * with the remote-tracking branch to find the value @@@ -1563,10 -1557,14 +1560,14 @@@ if (ref->expect_old_no_trackback || oidcmp(&ref->old_oid, &ref->old_oid_expect)) reject_reason = REF_STATUS_REJECT_STALE; + else + /* If the ref isn't stale then force the update. */ + force_ref_update = 1; } /* - * The usual "must fast-forward" rules. + * If the update isn't already rejected then check + * the usual "must fast-forward" rules. * * Decide whether an individual refspec A:B can be * pushed. The push will succeed if any of the @@@ -1585,7 -1583,7 +1586,7 @@@ * passing the --force argument */ - else if (!ref->deletion && !is_null_oid(&ref->old_oid)) { + if (!reject_reason && !ref->deletion && !is_null_oid(&ref->old_oid)) { if (starts_with(ref->name, "refs/tags/")) reject_reason = REF_STATUS_REJECT_ALREADY_EXISTS; else if (!has_object_file(&ref->old_oid))