Usually we don't need to set libcurl to choose which version of the HTTP
protocol to use to communicate with a server. But different versions of
libcurl, the default value is not the same.

CURL >= 7.62.0: CURL_HTTP_VERSION_2TLS CURL < 7.62: CURL_HTTP_VERSION_1_1

In order to give users the freedom to control the HTTP version, we need to
add a setting to choose which HTTP version to use.

This patch support force enable HTTP/2 or HTTP/1.1. 

example: 

GIT_CURL_VERBOSE=1 git2 -c http.version=HTTP/2 ls-remote 
https://bitbucket.org/aquariusjay/deeplab-public-ver2.git

Force Charlie (1):
  http: add support selecting http version

 Documentation/config.txt |  9 +++++++++
 http.c                   | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)


base-commit: 8858448bb49332d353febc078ce4a3abcc962efe
Published-As: 
https://github.com/gitgitgadget/git/releases/tags/pr-69%2Ffcharlie%2Fmaster-v7
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git 
pr-69/fcharlie/master-v7
Pull-Request: https://github.com/gitgitgadget/git/pull/69

Range-diff vs v6:

 1:  93fda67198 ! 1:  e26fc0d8c7 http: add support selecting http version
     @@ -49,7 +49,7 @@
       
       static int http_options(const char *var, const char *value, void *cb)
       {
     -+ if (!strcmp("http.version",var)) {
     ++ if (!strcmp("http.version", var)) {
      +         return git_config_string(&curl_http_version, var, value);
      + }
        if (!strcmp("http.sslverify", var)) {
     @@ -95,7 +95,7 @@
      +         long opt;
      +         if (!get_curl_http_version_opt(curl_http_version, &opt)) {
      +                 /* Set request use http version */
     -+                 curl_easy_setopt(result, CURLOPT_HTTP_VERSION,opt);
     ++                 curl_easy_setopt(result, CURLOPT_HTTP_VERSION, opt);
      +         }
      +    }
      +#endif

-- 
gitgitgadget

Reply via email to