diff options
author | Petr Baudis <pasky@suse.cz> | 2008-08-07 02:06:30 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-07 11:39:14 -0700 |
commit | fd35e42683113e367eee0bb8ac956dde3d95edde (patch) | |
tree | 30ddedf85f7d3f2f89944e4cebd14111491fc9f2 /transport.c | |
parent | 781c1834f5419bdf81bb7f3750170ccd6b809174 (diff) | |
download | git-fd35e42683113e367eee0bb8ac956dde3d95edde.tar.gz git-fd35e42683113e367eee0bb8ac956dde3d95edde.tar.xz |
Fail properly when cloning from invalid HTTP URL
Currently, when cloning from invalid HTTP URL, git clone will possibly
return curl error, then a confusing message about remote HEAD and then
return success and leave an empty repository behind, confusing either
the end-user or the automated service calling it (think repo.or.cz).
This patch changes the error() calls in get_refs_via_curl() to die()s,
akin to the other get_refs_*() functions.
Cc: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'transport.c')
-rw-r--r-- | transport.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/transport.c b/transport.c index 6f549b336..b3e3e61f9 100644 --- a/transport.c +++ b/transport.c @@ -463,17 +463,14 @@ static struct ref *get_refs_via_curl(struct transport *transport) run_active_slot(slot); if (results.curl_result != CURLE_OK) { strbuf_release(&buffer); - if (missing_target(&results)) { - return NULL; - } else { - error("%s", curl_errorstr); - return NULL; - } + if (missing_target(&results)) + die("%s not found: did you run git update-server-info on the server?", refs_url); + else + die("%s download error - %s", refs_url, curl_errorstr); } } else { strbuf_release(&buffer); - error("Unable to start request"); - return NULL; + die("Unable to start HTTP request"); } data = buffer.buf; |