do not segfault if make_cache_entry failed
[gitweb.git] / transport.c
index 4145eed9794a956b05967f049fe2caedcaa67feb..f7db5d91103c09a8cdc9bdbd27de4b0d4a15ea73 100644 (file)
@@ -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;
@@ -622,7 +619,7 @@ static struct ref *get_refs_via_connect(struct transport *transport)
        struct ref *refs;
 
        connect_setup(transport);
-       get_remote_heads(data->fd[0], &refs, 0, NULL, 0);
+       get_remote_heads(data->fd[0], &refs, 0, NULL, 0, NULL);
 
        return refs;
 }
@@ -645,7 +642,9 @@ static int fetch_refs_via_pack(struct transport *transport,
        args.lock_pack = 1;
        args.use_thin_pack = data->thin;
        args.include_tag = data->followtags;
-       args.verbose = transport->verbose > 0;
+       args.verbose = (transport->verbose > 0);
+       args.quiet = args.no_progress = (transport->verbose < 0);
+       args.no_progress = !isatty(1);
        args.depth = data->depth;
 
        for (i = 0; i < nr_heads; i++)
@@ -653,7 +652,7 @@ static int fetch_refs_via_pack(struct transport *transport,
 
        if (!data->conn) {
                connect_setup(transport);
-               get_remote_heads(data->fd[0], &refs_tmp, 0, NULL, 0);
+               get_remote_heads(data->fd[0], &refs_tmp, 0, NULL, 0, NULL);
        }
 
        refs = fetch_pack(&args, data->fd, data->conn,