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
This commit is contained in:
@ -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
|
write may take longer. Having an updated commit-graph file helps performance
|
||||||
of many Git commands, including `git merge-base`, `git push -f`, and
|
of many Git commands, including `git merge-base`, `git push -f`, and
|
||||||
`git log --graph`.
|
`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::
|
feature.manyFiles::
|
||||||
Enable config options that optimize for repos with many files in the
|
Enable config options that optimize for repos with many files in the
|
||||||
|
@ -48,7 +48,8 @@ protocol.version::
|
|||||||
If set, clients will attempt to communicate with a server
|
If set, clients will attempt to communicate with a server
|
||||||
using the specified protocol version. If the server does
|
using the specified protocol version. If the server does
|
||||||
not support it, communication falls back to version 0.
|
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:
|
Supported versions:
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
|
@ -17,6 +17,7 @@ static enum protocol_version parse_protocol_version(const char *value)
|
|||||||
enum protocol_version get_protocol_version_config(void)
|
enum protocol_version get_protocol_version_config(void)
|
||||||
{
|
{
|
||||||
const char *value;
|
const char *value;
|
||||||
|
int val;
|
||||||
const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
|
const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
|
||||||
const char *git_test_v;
|
const char *git_test_v;
|
||||||
|
|
||||||
@ -30,6 +31,9 @@ enum protocol_version get_protocol_version_config(void)
|
|||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!git_config_get_bool("feature.experimental", &val) && val)
|
||||||
|
return protocol_v2;
|
||||||
|
|
||||||
git_test_v = getenv(git_test_k);
|
git_test_v = getenv(git_test_k);
|
||||||
if (git_test_v && *git_test_v) {
|
if (git_test_v && *git_test_v) {
|
||||||
enum protocol_version env = parse_protocol_version(git_test_v);
|
enum protocol_version env = parse_protocol_version(git_test_v);
|
||||||
|
Reference in New Issue
Block a user