about summary refs log tree commit diff
path: root/third_party/git/protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/protocol.c')
-rw-r--r--third_party/git/protocol.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/third_party/git/protocol.c b/third_party/git/protocol.c
index 803bef5c87..9741f05750 100644
--- a/third_party/git/protocol.c
+++ b/third_party/git/protocol.c
@@ -17,8 +17,9 @@ 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;
+	const char *git_test_v = getenv(git_test_k);
 
 	if (!git_config_get_string_const("protocol.version", &value)) {
 		enum protocol_version version = parse_protocol_version(value);
@@ -27,19 +28,19 @@ enum protocol_version get_protocol_version_config(void)
 			die("unknown value for config 'protocol.version': %s",
 			    value);
 
-		return version;
+		retval = 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);
-		return env;
+		if (retval < env)
+			retval = env;
 	}
 
-	return protocol_v2;
+	return retval;
 }
 
 enum protocol_version determine_protocol_version_server(void)