Merge branch 'tc/clone-v-progress'
authorJunio C Hamano <gitster@pobox.com>
Sun, 17 Jan 2010 23:58:58 +0000 (15:58 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 17 Jan 2010 23:58:58 +0000 (15:58 -0800)
* tc/clone-v-progress:
clone: use --progress to force progress reporting
clone: set transport->verbose when -v/--verbose is used
git-clone.txt: reword description of progress behaviour
check stderr with isatty() instead of stdout when deciding to show progress

Conflicts:
transport.c

Documentation/git-clone.txt
builtin-clone.c
t/t5702-clone-options.sh
transport-helper.c
transport.c
transport.h
index 7ccd742a87db1541184868b794fa4ef597d04de8..f43c8b2c08ab4ca45f759369dc3d8e85c9f76415 100644 (file)
@@ -96,13 +96,19 @@ objects from the source repository into a pack in the cloned repository.
 
 --quiet::
 -q::
-       Operate quietly.  This flag is also passed to the `rsync'
+       Operate quietly.  Progress is not reported to the standard
+       error stream. This flag is also passed to the `rsync'
        command when given.
 
 --verbose::
 -v::
-       Display the progress bar, even in case the standard output is not
-       a terminal.
+       Run verbosely.
+
+--progress::
+       Progress status is reported on the standard error stream
+       by default when it is attached to a terminal, unless -q
+       is specified. This flag forces progress status even if the
+       standard error stream is not directed to a terminal.
 
 --no-checkout::
 -n::
index 5df8b0f72c8bb5dfa7fa7df1edfec90405031f47..58bacbd552c1e2496034346265a3e5ab219e2672 100644 (file)
@@ -44,10 +44,13 @@ static char *option_origin = NULL;
 static char *option_branch = NULL;
 static char *option_upload_pack = "git-upload-pack";
 static int option_verbose;
+static int option_progress;
 
 static struct option builtin_clone_options[] = {
        OPT__QUIET(&option_quiet),
        OPT__VERBOSE(&option_verbose),
+       OPT_BOOLEAN(0, "progress", &option_progress,
+                       "force progress reporting"),
        OPT_BOOLEAN('n', "no-checkout", &option_no_checkout,
                    "don't create a checkout"),
        OPT_BOOLEAN(0, "bare", &option_bare, "create a bare repository"),
@@ -526,6 +529,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
                if (option_quiet)
                        transport->verbose = -1;
                else if (option_verbose)
+                       transport->verbose = 1;
+
+               if (option_progress)
                        transport->progress = 1;
 
                if (option_upload_pack)
index 27825f5f31ca2310e08fd2555589aa878728b292..02cb02472322e8fd6c31548d30950c937e301e5f 100755 (executable)
@@ -27,7 +27,8 @@ test_expect_success 'redirected clone' '
 '
 test_expect_success 'redirected clone -v' '
 
-       git clone -v "file://$(pwd)/parent" clone-redirected-v >out 2>err &&
+       git clone --progress "file://$(pwd)/parent" clone-redirected-progress \
+               >out 2>err &&
        test -s err
 
 '
index 6ece0d9875652e5d648be7e18ddf2084c564fc12..ca8fa92e638e2589e2b6b8ffbe21ac824b5274a5 100644 (file)
@@ -273,7 +273,7 @@ static void standard_options(struct transport *t)
        char buf[16];
        int n;
        int v = t->verbose;
-       int no_progress = v < 0 || (!t->progress && !isatty(1));
+       int no_progress = v < 0 || (!t->progress && !isatty(2));
 
        set_helper_option(t, "progress", !no_progress ? "true" : "false");
 
index 3b489b392b90ecbbabeae5d736527f83eba18cb4..c3f156ea04636a722a49aca225175a6f9e9259c9 100644 (file)
@@ -478,7 +478,7 @@ static int fetch_refs_via_pack(struct transport *transport,
        args.include_tag = data->options.followtags;
        args.verbose = (transport->verbose > 0);
        args.quiet = (transport->verbose < 0);
-       args.no_progress = args.quiet || (!transport->progress && !isatty(1));
+       args.no_progress = args.quiet || (!transport->progress && !isatty(2));
        args.depth = data->options.depth;
 
        for (i = 0; i < nr_heads; i++)
index 97ba2519dd6db2a4341def590e06cbc81b33fed2..7a242fe3bd68e55e5807268e5c381c3c89f96a47 100644 (file)
@@ -74,7 +74,7 @@ struct transport {
        int (*disconnect)(struct transport *connection);
        char *pack_lockfile;
        signed verbose : 3;
-       /* Force progress even if the output is not a tty */
+       /* Force progress even if stderr is not a tty */
        unsigned progress : 1;
        /*
         * If transport is at least potentially smart, this points to