http-push prompts for a password when the URL is set as 'https://user@host/repo' even though there is one set in ~/.netrc. Pressing ENTER at the password prompt succeeds then, but is a annoying and makes it almost useless in a shell script, e.g. Signed-off-by: Stefan Naewe <stefan.naewe@xxxxxxxxx> --- http.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/http.c b/http.c index a4bc770..008ad72 100644 --- a/http.c +++ b/http.c @@ -279,8 +279,6 @@ static CURL *get_curl_handle(void) curl_easy_setopt(result, CURLOPT_HTTPAUTH, CURLAUTH_ANY); #endif - init_curl_http_auth(result); - if (ssl_cert != NULL) curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert); if (has_cert_password()) @@ -846,7 +844,7 @@ static int http_request(const char *url, void *result, int target, int options) else if (missing_target(&results)) ret = HTTP_MISSING_TARGET; else if (results.http_code == 401) { - if (user_name) { + if (user_name && user_pass) { ret = HTTP_NOAUTH; } else { /* @@ -855,7 +853,8 @@ static int http_request(const char *url, void *result, int target, int options) * but that is non-portable. Using git_getpass() can at least be stubbed * on other platforms with a different implementation if/when necessary. */ - user_name = xstrdup(git_getpass_with_description("Username", description)); + if (!user_name) + user_name = xstrdup(git_getpass_with_description("Username", description)); init_curl_http_auth(slot->curl); ret = HTTP_REAUTH; } -- 1.7.8.rc0.1.gb345ae -- 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