]> git.ipfire.org Git - thirdparty/git.git/commitdiff
protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSION
authorJonathan Nieder <jrnieder@gmail.com>
Tue, 24 Dec 2019 01:02:28 +0000 (17:02 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Jan 2020 22:03:55 +0000 (14:03 -0800)
The GIT_TEST_PROTOCOL_VERSION environment variable can be used to
upgrade the version of Git protocol used in tests.  If both
GIT_TEST_PROTOCOL_VERSION and 'protocol.version' are set, the higher
value wins.

For usage within tests, these semantics are too complex.  Instead,
always use the value from protocol.version configuration when it is
set, falling back to GIT_TEST_PROTOCOL_VERSION.  This way, the envvar
provides a reliable preview of what will happen if the default
protocol version is changed.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
protocol.c
t/README

index 9741f057505d2041be1e8dbd49b444aaeab4bd82..d390391ebac80a7b9d506c592bbd32b24f9f250f 100644 (file)
@@ -17,9 +17,8 @@ static enum protocol_version parse_protocol_version(const char *value)
 enum protocol_version get_protocol_version_config(void)
 {
        const char *value;
-       enum protocol_version retval = protocol_v0;
        const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
-       const char *git_test_v = getenv(git_test_k);
+       const char *git_test_v;
 
        if (!git_config_get_string_const("protocol.version", &value)) {
                enum protocol_version version = parse_protocol_version(value);
@@ -28,19 +27,19 @@ enum protocol_version get_protocol_version_config(void)
                        die("unknown value for config 'protocol.version': %s",
                            value);
 
-               retval = version;
+               return version;
        }
 
+       git_test_v = getenv(git_test_k);
        if (git_test_v && *git_test_v) {
                enum protocol_version env = parse_protocol_version(git_test_v);
 
                if (env == protocol_unknown_version)
                        die("unknown value for %s: %s", git_test_k, git_test_v);
-               if (retval < env)
-                       retval = env;
+               return env;
        }
 
-       return retval;
+       return protocol_v0;
 }
 
 enum protocol_version determine_protocol_version_server(void)
index caa125ba9a7954abb8af0fa01d0080a3409eed9e..9afd61e3ca0d19e569c5d31855fbbc79c83c9d4e 100644 (file)
--- a/t/README
+++ b/t/README
@@ -352,8 +352,8 @@ details.
 GIT_TEST_SPLIT_INDEX=<boolean> forces split-index mode on the whole
 test suite. Accept any boolean values that are accepted by git-config.
 
-GIT_TEST_PROTOCOL_VERSION=<n>, when set, overrides the
-'protocol.version' setting to n if it is less than n.
+GIT_TEST_PROTOCOL_VERSION=<n>, when set, makes 'protocol.version'
+default to n.
 
 GIT_TEST_FULL_IN_PACK_ARRAY=<boolean> exercises the uncommon
 pack-objects code path where there are more than 1024 packs even if