Browse Source

Merge branch 'jn/experimental-opts-into-proto-v2'

"feature.experimental" configuration variable is to let volunteers
easily opt into a set of newer features, which use of the v2
transport protocol is now a part of.

* jn/experimental-opts-into-proto-v2:
  config: let feature.experimental imply protocol.version=2
maint
Junio C Hamano 5 years ago
parent
commit
51b4708811
  1. 4
      Documentation/config/feature.txt
  2. 3
      Documentation/config/protocol.txt
  3. 4
      protocol.c

4
Documentation/config/feature.txt

@ -22,6 +22,10 @@ existing commit-graph file(s). Occasionally, these files will merge and the @@ -22,6 +22,10 @@ existing commit-graph file(s). Occasionally, these files will merge and the
write may take longer. Having an updated commit-graph file helps performance
of many Git commands, including `git merge-base`, `git push -f`, and
`git log --graph`.
+
* `protocol.version=2` speeds up fetches from repositories with many refs by
allowing the client to specify which refs to list before the server lists
them.

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

3
Documentation/config/protocol.txt

@ -48,7 +48,8 @@ protocol.version:: @@ -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:
+
--

4
protocol.c

@ -17,6 +17,7 @@ static enum protocol_version parse_protocol_version(const char *value) @@ -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) @@ -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);

Loading…
Cancel
Save