Skip to content

Commit eb04975

Browse files
peffgitster
authored andcommitted
protocol: re-enable v2 protocol by default
Protocol v2 became the default in v2.26.0 via 684ceae (fetch: default to protocol version 2, 2019-12-23). More widespread use turned up a regression in negotiation. That was fixed in v2.27.0 via 4fa3f00 (fetch-pack: in protocol v2, in_vain only after ACK, 2020-04-27), but we also reverted the default to v0 as a precuation in 11c7f2a (Revert "fetch: default to protocol version 2", 2020-04-22). In v2.28.0, we re-enabled it for experimental users with 3697caf (config: let feature.experimental imply protocol.version=2, 2020-05-20) and haven't heard any complaints. v2.28 has only been out for 2 months, but I'd generally expect people turning on feature.experimental to also stay pretty up-to-date. So we're not likely to collect much more data by waiting. In addition, we have no further reports from people running v2.26.0, and of course some people have been setting protocol.version manually for ages. Let's move forward with v2 as the default again. It's possible there are still lurking bugs, but we won't know until it gets more widespread use. And we can find and squash them just like any other bug at this point. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent e1cfff6 commit eb04975

File tree

3 files changed

+2
-11
lines changed

3 files changed

+2
-11
lines changed

Documentation/config/feature.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@ feature.experimental::
1414
+
1515
* `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
1616
skipping more commits at a time, reducing the number of round trips.
17-
+
18-
* `protocol.version=2` speeds up fetches from repositories with many refs by
19-
allowing the client to specify which refs to list before the server lists
20-
them.
2117

2218
feature.manyFiles::
2319
Enable config options that optimize for repos with many files in the

Documentation/config/protocol.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ protocol.version::
4848
If set, clients will attempt to communicate with a server
4949
using the specified protocol version. If the server does
5050
not support it, communication falls back to version 0.
51-
If unset, the default is `0`, unless `feature.experimental`
52-
is enabled, in which case the default is `2`.
51+
If unset, the default is `2`.
5352
Supported versions:
5453
+
5554
--

protocol.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ static enum protocol_version parse_protocol_version(const char *value)
1717
enum protocol_version get_protocol_version_config(void)
1818
{
1919
const char *value;
20-
int val;
2120
const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
2221
const char *git_test_v;
2322

@@ -31,9 +30,6 @@ enum protocol_version get_protocol_version_config(void)
3130
return version;
3231
}
3332

34-
if (!git_config_get_bool("feature.experimental", &val) && val)
35-
return protocol_v2;
36-
3733
git_test_v = getenv(git_test_k);
3834
if (git_test_v && *git_test_v) {
3935
enum protocol_version env = parse_protocol_version(git_test_v);
@@ -43,7 +39,7 @@ enum protocol_version get_protocol_version_config(void)
4339
return env;
4440
}
4541

46-
return protocol_v0;
42+
return protocol_v2;
4743
}
4844

4945
enum protocol_version determine_protocol_version_server(void)

0 commit comments

Comments
 (0)