[PATCH] Revert "fetch: default to protocol version 2"
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Apr 22, 2020, 15:50 UTC
- Message-ID
- <20200422155047.GB91734@google.com>
- In-Reply-To
- <20200422095702.GA475060@coredump.intra.peff.net>
This reverts commit 684ceae32dae726c6a5c693b257b156926aba8b7.
Users fetching from linux-next and other kernel remotes are reporting that the limited ref advertisement causes negotiation to reach MAX_IN_VAIN, resulting in too-large fetches.
Reported-by: Lubomir Rintel <lkundrak@v3.sk> Reported-by: "Dixit, Ashutosh" <ashutosh.dixit@intel.com> Reported-by: Jiri Slaby <jslaby@suse.cz> Reported-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> --- Hi again,
Jeff King wrote:
Show 7 quoted lines
> Thanks for this report. We've been tracking the issue but have had > trouble reproducing it. > > To get you unstuck, the immediate workaround is to drop back to the > older protocol, like: > > git -c protocol.version=0 fetch --all
By the way, I'd recommend the immediate workaround of
git fetch --negotiation-tip=refs/remotes/xo/* xo
instead. But that's a separate subject.
[...]
> There are a few data points we've been wanting to collect:
[...]
> I'm attaching for-each-ref output before and after the xo fetch. That > should be sufficient to recreate the situation synthetically even once > these repos have moved on.
Excellent --- I think this is enough for us to have something to use to investigate, switching users to protocol v0 in the meantime.
Thanks, Jonathan
Documentation/config/protocol.txt | 2 +- protocol.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Documentation/config/protocol.txt b/Documentation/config/protocol.txt index 756591d77b0..0b40141613e 100644 --- a/Documentation/config/protocol.txt +++ b/Documentation/config/protocol.txt @@ -48,7 +48,7 @@ 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 `2`. + If unset, the default is `0`. Supported versions: + -- diff --git a/protocol.c b/protocol.c index 803bef5c87e..d390391ebac 100644 --- a/protocol.c +++ b/protocol.c @@ -39,7 +39,7 @@ enum protocol_version get_protocol_version_config(void) return env; } - return protocol_v2; + return protocol_v0; } enum protocol_version determine_protocol_version_server(void)
-- 2.26.2.303.gf8c07b1a785