Skip to content

Commit

Permalink
clone: send diagnostic messages to stderr
Browse files Browse the repository at this point in the history
Putting messages like "Cloning into.." and "done" on stdout
is un-Unix and uselessly clutters the stdout channel. Send
them to stderr.

We have to tweak two tests to accommodate this:

  1. t5601 checks for doubled output due to forking, and
     doesn't actually care where the output goes; adjust it
     to check stderr.

  2. t5702 is trying to test whether progress output was
     sent to stderr, but naively does so by checking
     whether stderr produced any output. Instead, have it
     look for "%", a token found in progress output but not
     elsewhere (and which lets us avoid hard-coding the
     progress text in the test).

This should not regress any scripts that try to parse the
current output, as the output is already internationalized
and therefore unstable.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Sep 18, 2013
1 parent e230c56 commit 68b939b
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 10 deletions.
10 changes: 5 additions & 5 deletions builtin/clone.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ static void clone_local(const char *src_repo, const char *dest_repo)
}

if (0 <= option_verbosity)
printf(_("done.\n"));
fprintf(stderr, _("done.\n"));
}

static const char *junk_work_tree;
Expand Down Expand Up @@ -552,12 +552,12 @@ static void update_remote_refs(const struct ref *refs,

if (check_connectivity) {
if (0 <= option_verbosity)
printf(_("Checking connectivity... "));
fprintf(stderr, _("Checking connectivity... "));
if (check_everything_connected_with_transport(iterate_ref_map,
0, &rm, transport))
die(_("remote did not send all necessary objects"));
if (0 <= option_verbosity)
printf(_("done\n"));
fprintf(stderr, _("done\n"));
}

if (refs) {
Expand Down Expand Up @@ -850,9 +850,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix)

if (0 <= option_verbosity) {
if (option_bare)
printf(_("Cloning into bare repository '%s'...\n"), dir);
fprintf(stderr, _("Cloning into bare repository '%s'...\n"), dir);
else
printf(_("Cloning into '%s'...\n"), dir);
fprintf(stderr, _("Cloning into '%s'...\n"), dir);
}
init_db(option_template, INIT_DB_QUIET);
write_config(&option_config);
Expand Down
2 changes: 1 addition & 1 deletion t/t5601-clone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ test_expect_success 'clone with excess parameters (2)' '

test_expect_success C_LOCALE_OUTPUT 'output from clone' '
rm -fr dst &&
git clone -n "file://$(pwd)/src" dst >output &&
git clone -n "file://$(pwd)/src" dst >output 2>&1 &&
test $(grep Clon output | wc -l) = 1
'

Expand Down
9 changes: 5 additions & 4 deletions t/t5702-clone-options.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,18 @@ test_expect_success 'clone -o' '
'

test_expect_success 'redirected clone' '
test_expect_success 'redirected clone does not show progress' '
git clone "file://$(pwd)/parent" clone-redirected >out 2>err &&
test_must_be_empty err
! grep % err
'
test_expect_success 'redirected clone -v' '

test_expect_success 'redirected clone -v does show progress' '
git clone --progress "file://$(pwd)/parent" clone-redirected-progress \
>out 2>err &&
test -s err
grep % err
'

Expand Down

0 comments on commit 68b939b

Please sign in to comment.