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@xxxxx> Reported-by: "Dixit, Ashutosh" <ashutosh.dixit@xxxxxxxxx> Reported-by: Jiri Slaby <jslaby@xxxxxxx> Reported-by: Konstantin Ryabitsev <konstantin@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- Hi again, Jeff King wrote: > 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