]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/clone.c
Sync with 2.32.4
[thirdparty/git.git] / builtin / clone.c
index cdf9208d4543bfda0b41cdd77c7b52cbe9950d4a..4c5f35f6c153ef322b192ead7cb1889eea8f85a7 100644 (file)
@@ -1322,9 +1322,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
                        }
 
                if (!is_local && !complete_refs_before_fetch) {
-                       err = transport_fetch_refs(transport, mapped_refs);
-                       if (err)
-                               goto cleanup;
+                       if (transport_fetch_refs(transport, mapped_refs))
+                               die(_("remote transport reported error"));
                }
 
                remote_head = find_ref_by_name(refs, "HEAD");
@@ -1343,6 +1342,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
                        our_head_points_at = remote_head_points_at;
        }
        else {
+               const char *branch;
+               char *ref;
+
                if (option_branch)
                        die(_("Remote branch %s not found in upstream %s"),
                                        option_branch, remote_name);
@@ -1353,24 +1355,22 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
                remote_head_points_at = NULL;
                remote_head = NULL;
                option_no_checkout = 1;
-               if (!option_bare) {
-                       const char *branch;
-                       char *ref;
-
-                       if (transport_ls_refs_options.unborn_head_target &&
-                           skip_prefix(transport_ls_refs_options.unborn_head_target,
-                                       "refs/heads/", &branch)) {
-                               ref = transport_ls_refs_options.unborn_head_target;
-                               transport_ls_refs_options.unborn_head_target = NULL;
-                               create_symref("HEAD", ref, reflog_msg.buf);
-                       } else {
-                               branch = git_default_branch_name(0);
-                               ref = xstrfmt("refs/heads/%s", branch);
-                       }
 
-                       install_branch_config(0, branch, remote_name, ref);
-                       free(ref);
+               if (transport_ls_refs_options.unborn_head_target &&
+                   skip_prefix(transport_ls_refs_options.unborn_head_target,
+                               "refs/heads/", &branch)) {
+                       ref = transport_ls_refs_options.unborn_head_target;
+                       transport_ls_refs_options.unborn_head_target = NULL;
+                       create_symref("HEAD", ref, reflog_msg.buf);
+               } else {
+                       branch = git_default_branch_name(0);
+                       ref = xstrfmt("refs/heads/%s", branch);
                }
+
+               if (!option_bare)
+                       install_branch_config(0, branch, remote_name, ref);
+
+               free(ref);
        }
 
        write_refspec_config(src_ref_prefix, our_head_points_at,
@@ -1382,9 +1382,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
        if (is_local)
                clone_local(path, git_dir);
        else if (refs && complete_refs_before_fetch) {
-               err = transport_fetch_refs(transport, mapped_refs);
-               if (err)
-                       goto cleanup;
+               if (transport_fetch_refs(transport, mapped_refs))
+                       die(_("remote transport reported error"));
        }
 
        update_remote_refs(refs, mapped_refs, remote_head_points_at,
@@ -1412,7 +1411,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
        junk_mode = JUNK_LEAVE_REPO;
        err = checkout(submodule_progress);
 
-cleanup:
        free(remote_name);
        strbuf_release(&reflog_msg);
        strbuf_release(&branch_top);