Merge branch 'fk/doc-format-patch-vn' into maint
[gitweb.git] / builtin / clone.c
index 2d77a2de4f3d3c73019b0b9873048f2d5747a378..4646922d6e1284c31dfdbd54d4042e065ade18a9 100644 (file)
@@ -34,7 +34,7 @@
  *
  */
 static const char * const builtin_clone_usage[] = {
-       N_("git clone [options] [--] <repo> [<dir>]"),
+       N_("git clone [<options>] [--] <repo> [<dir>]"),
        NULL
 };
 
@@ -51,15 +51,6 @@ static struct string_list option_config;
 static struct string_list option_reference;
 static int option_dissociate;
 
-static int opt_parse_reference(const struct option *opt, const char *arg, int unset)
-{
-       struct string_list *option_reference = opt->value;
-       if (!arg)
-               return -1;
-       string_list_append(option_reference, arg);
-       return 0;
-}
-
 static struct option builtin_clone_options[] = {
        OPT__VERBOSITY(&option_verbosity),
        OPT_BOOL(0, "progress", &option_progress,
@@ -83,8 +74,10 @@ static struct option builtin_clone_options[] = {
                    N_("initialize submodules in the clone")),
        OPT_STRING(0, "template", &option_template, N_("template-directory"),
                   N_("directory from which templates will be used")),
-       OPT_CALLBACK(0 , "reference", &option_reference, N_("repo"),
-                    N_("reference repository"), &opt_parse_reference),
+       OPT_STRING_LIST(0, "reference", &option_reference, N_("repo"),
+                       N_("reference repository")),
+       OPT_BOOL(0, "dissociate", &option_dissociate,
+                N_("use --reference only while cloning")),
        OPT_STRING('o', "origin", &option_origin, N_("name"),
                   N_("use <name> instead of 'origin' to track upstream")),
        OPT_STRING('b', "branch", &option_branch, N_("branch"),
@@ -95,8 +88,6 @@ static struct option builtin_clone_options[] = {
                    N_("create a shallow clone of that depth")),
        OPT_BOOL(0, "single-branch", &option_single_branch,
                    N_("clone only one branch, HEAD or --branch")),
-       OPT_BOOL(0, "dissociate", &option_dissociate,
-                N_("use --reference only while cloning")),
        OPT_STRING(0, "separate-git-dir", &real_git_dir, N_("gitdir"),
                   N_("separate git dir from working tree")),
        OPT_STRING_LIST('c', "config", &option_config, N_("key=value"),
@@ -906,6 +897,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
 
        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) {
@@ -932,8 +925,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
        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);