From: "Shawn O. Pearce" <spearce@xxxxxxxxxxx> If the user doesn't want to use the dumb HTTP protocol, she may set GIT_CURL_FALLBACK=0 in the environment before invoking a Git protocol operation. This is mostly useful when testing against servers that are known to not support the dumb protocol. If the smart service detection fails the client should not continue with dumb behavior, but instead provide accurate HTTP failure data. Signed-off-by: Shawn O. Pearce <spearce@xxxxxxxxxxx> --- remote-curl.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/remote-curl.c b/remote-curl.c index 4a0927e..2f91128 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -17,7 +17,8 @@ struct options { unsigned progress : 1, followtags : 1, dry_run : 1, - thin : 1; + thin : 1, + fallback : 1; }; static struct options options; @@ -115,7 +116,8 @@ static struct discovery* discover_refs(const char *service) http_ret = http_get_strbuf(refs_url, &buffer, HTTP_NO_CACHE); /* try again with "plain" url (no ? or & appended) */ - if (http_ret != HTTP_OK && http_ret != HTTP_NOAUTH) { + if (options.fallback && http_ret != HTTP_OK + && http_ret != HTTP_NOAUTH) { free(refs_url); strbuf_reset(&buffer); @@ -868,6 +870,12 @@ int main(int argc, const char **argv) options.verbosity = 1; options.progress = !!isatty(2); options.thin = 1; + options.fallback = 1; + + if (getenv("GIT_CURL_FALLBACK")) { + char *fb = getenv("GIT_CURL_FALLBACK"); + options.fallback = *fb != '0'; + } remote = remote_get(argv[1]); -- 1.7.12.1.512.g9b230e6 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html