Merge branch 'mh/clone-verbosity-fix'
authorJunio C Hamano <gitster@pobox.com>
Fri, 22 May 2015 19:41:56 +0000 (12:41 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 May 2015 19:41:56 +0000 (12:41 -0700)
Git 2.4 broke setting verbosity and progress levels on "git clone"
with native transports.

* mh/clone-verbosity-fix:
clone: call transport_set_verbosity before anything else on the newly created transport

1  2 
builtin/clone.c
diff --combined builtin/clone.c
index 166a645e2dcedc66b1d2f20ca01010a5ae2ee9d8,f6a60b9d17f5f3ce5f2e4b37216006534e8e78d1..b878252bc2e64bbe95adbae5554618f017c9ac85
@@@ -34,7 -34,7 +34,7 @@@
   *
   */
  static const char * const builtin_clone_usage[] = {
 -      N_("git clone [options] [--] <repo> [<dir>]"),
 +      N_("git clone [<options>] [--] <repo> [<dir>]"),
        NULL
  };
  
@@@ -293,17 -293,16 +293,17 @@@ static void copy_alternates(struct strb
        struct strbuf line = STRBUF_INIT;
  
        while (strbuf_getline(&line, in, '\n') != EOF) {
 -              char *abs_path, abs_buf[PATH_MAX];
 +              char *abs_path;
                if (!line.len || line.buf[0] == '#')
                        continue;
                if (is_absolute_path(line.buf)) {
                        add_to_alternates_file(line.buf);
                        continue;
                }
 -              abs_path = mkpath("%s/objects/%s", src_repo, line.buf);
 -              normalize_path_copy(abs_buf, abs_path);
 -              add_to_alternates_file(abs_buf);
 +              abs_path = mkpathdup("%s/objects/%s", src_repo, line.buf);
 +              normalize_path_copy(abs_path, abs_path);
 +              add_to_alternates_file(abs_path);
 +              free(abs_path);
        }
        strbuf_release(&line);
        fclose(in);
@@@ -843,21 -842,20 +843,21 @@@ int cmd_clone(int argc, const char **ar
                git_dir = mkpathdup("%s/.git", dir);
        }
  
 +      atexit(remove_junk);
 +      sigchain_push_common(remove_junk_on_signal);
 +
        if (!option_bare) {
 -              junk_work_tree = work_tree;
                if (safe_create_leading_directories_const(work_tree) < 0)
                        die_errno(_("could not create leading directories of '%s'"),
                                  work_tree);
                if (!dest_exists && mkdir(work_tree, 0777))
 -                      die_errno(_("could not create work tree dir '%s'."),
 +                      die_errno(_("could not create work tree dir '%s'"),
                                  work_tree);
 +              junk_work_tree = work_tree;
                set_git_work_tree(work_tree);
        }
 -      junk_git_dir = git_dir;
 -      atexit(remove_junk);
 -      sigchain_push_common(remove_junk_on_signal);
  
 +      junk_git_dir = git_dir;
        if (safe_create_leading_directories_const(git_dir) < 0)
                die(_("could not create leading directories of '%s'"), git_dir);
  
  
        remote = remote_get(option_origin);
        transport = transport_get(remote, remote->url[0]);
+       transport_set_verbosity(transport, option_verbosity, option_progress);
        path = get_repo_path(remote->url[0], &is_bundle);
        is_local = option_local != 0 && path && !is_bundle;
        if (is_local) {
        if (option_single_branch)
                transport_set_option(transport, TRANS_OPT_FOLLOWTAGS, "1");
  
-       transport_set_verbosity(transport, option_verbosity, option_progress);
        if (option_upload_pack)
                transport_set_option(transport, TRANS_OPT_UPLOADPACK,
                                     option_upload_pack);