git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jeff King <peff@peff.net>,
	git@vger.kernel.org, Derrick Stolee <dstolee@microsoft.com>
Subject: Protocol v2 in v2.27 (Re: Re* [ANNOUNCE] Git v2.27.0-rc1)
Date: Wed, 20 May 2020 15:00:23 -0700	[thread overview]
Message-ID: <20200520220023.GB3648@google.com> (raw)
In-Reply-To: <xmqq5zcquz4t.fsf_-_@gitster.c.googlers.com>

(other lists -> bcc)
Junio C Hamano wrote:
> Jeff King <peff@peff.net> writes:

>> Is it worth mentioning here the reversion of v2 as the default protocol?
>>
>> It does end up (along with the actual code fix) in the "fixes from
>> v2.26" section:
>>
>>>  * Those fetching over protocol v2 from linux-next and other kernel
>>>    repositories are reporting that v2 often fetches way too much than
>>>    needed.
>>>    (merge 11c7f2a30b jn/demote-proto2-from-default later to maint).
>>>
>>>  * The upload-pack protocol v2 gave up too early before finding a
>>>    common ancestor, resulting in a wasteful fetch from a fork of a
>>>    project.  This has been corrected to match the behaviour of v0
>>>    protocol.
>>>    (merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint).
>>
>> but that's somewhat buried. I dunno. It is not likely to introduce _new_
>> compatibility issues, but perhaps folks looking into compatibility stuff
>> may want to know about the revert.
>
> The promotion in Git 2.26 was buried in the "performance &
> implementation details" section and not in the backward
> compatibility section, so it feels a bit funny to highlight the
> reversion.  In any case, here is what I prepared (but not committed
> yet)

Speaking of which, should we enable protocol v2 by default for people
with feature.experimental enabled, like this?

(This isn't part of the rest of the feature.experimental handling
because those are tied to a repository object, whereas this code path
is used for operations like "git ls-remote" that do not require a
repository.)

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

diff --git c/Documentation/config/protocol.txt i/Documentation/config/protocol.txt
index 0b40141613e..c46e9b3d00a 100644
--- c/Documentation/config/protocol.txt
+++ i/Documentation/config/protocol.txt
@@ -48,7 +48,8 @@ protocol.version::
 	If set, clients will attempt to communicate with a server
 	using the specified protocol version.  If the server does
 	not support it, communication falls back to version 0.
-	If unset, the default is `0`.
+	If unset, the default is `0`, unless `feature.experimental`
+	is enabled, in which case the default is `2`.
 	Supported versions:
 +
 --
diff --git c/protocol.c i/protocol.c
index d390391ebac..d1dd3424bba 100644
--- c/protocol.c
+++ i/protocol.c
@@ -17,6 +17,7 @@ static enum protocol_version parse_protocol_version(const char *value)
 enum protocol_version get_protocol_version_config(void)
 {
 	const char *value;
+	int val;
 	const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
 	const char *git_test_v;
 
@@ -30,6 +31,9 @@ enum protocol_version get_protocol_version_config(void)
 		return version;
 	}
 
+	if (!git_config_get_bool("feature.experimental", &val) && val)
+		return protocol_v2;
+
 	git_test_v = getenv(git_test_k);
 	if (git_test_v && *git_test_v) {
 		enum protocol_version env = parse_protocol_version(git_test_v);

  parent reply	other threads:[~2020-05-20 22:00 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-20 19:17 [ANNOUNCE] Git v2.27.0-rc1 Junio C Hamano
2020-05-20 19:31 ` Jeff King
2020-05-20 20:02   ` Junio C Hamano
2020-05-20 20:31   ` Re* " Junio C Hamano
2020-05-20 21:24     ` Jeff King
2020-05-20 22:00     ` Jonathan Nieder [this message]
2020-05-20 23:59       ` Protocol v2 in v2.27 (Re: Re* [ANNOUNCE] Git v2.27.0-rc1) Junio C Hamano
2020-05-21  0:29         ` Jeff King
2020-05-21  2:15         ` Jonathan Nieder
2020-05-21  2:35           ` Carlo Marcelo Arenas Belón
2020-05-21  2:45             ` connect: don't request v2 when pushing (Re: Protocol v2 in v2.27) Jonathan Nieder
2020-05-21  3:26               ` Carlo Marcelo Arenas Belón
2020-05-21 11:54           ` Protocol v2 in v2.27 (Re: Re* [ANNOUNCE] Git v2.27.0-rc1) Derrick Stolee
2020-05-21 16:42             ` Junio C Hamano
2020-05-21 16:34           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200520220023.GB3648@google.com \
    --to=jrnieder@gmail.com \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).