From: Stefan Beller Date: Sat, 30 Apr 2016 00:40:42 GMT Subject: [PATCH 07/10] submodule foreach: send messages to stderr Message-ID: <1461976845-18228-8-git-send-email-sbeller@google.com> In-Reply-To: <1461976845-18228-1-git-send-email-sbeller@google.com> Reroute the output of stdout to stderr as it is just informative messages, not to be consumed by machines. 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: Stefan Beller --- git-submodule.sh | 2 +- t/t7407-submodule-foreach.sh | 35 ++++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/git-submodule.sh b/git-submodule.sh index 3f67f4e..80270db 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -341,7 +341,7 @@ cmd_foreach() if test -e "$sm_path"/.git then displaypath=$(relative_path "$prefix$sm_path") - say "$(eval_gettext "Entering '\$displaypath'")" + say >&2 "$(eval_gettext "Entering '\$displaypath'")" name=$(git submodule--helper name "$sm_path") ( prefix="$prefix$sm_path/" diff --git a/t/t7407-submodule-foreach.sh b/t/t7407-submodule-foreach.sh index 6ba5daf..f9b979a 100755 --- a/t/t7407-submodule-foreach.sh +++ b/t/t7407-submodule-foreach.sh @@ -61,29 +61,36 @@ sub3sha1=$(cd super/sub3 && git rev-parse HEAD) pwd=$(pwd) -cat > expect <expect <expect2 < ../actual && + git submodule foreach "echo \$toplevel-\$name-\$path-\$sha1" >../actual 2>../actual2 && git config foo.bar zar && git submodule foreach "git config --file \"\$toplevel/.git/config\" foo.bar" ) && - test_i18ncmp expect actual + test_i18ncmp expect actual && + test_i18ncmp expect2 actual2 ' -cat >expect <expect2 <expect <../../actual + git submodule foreach "echo \$toplevel-\$name-\$sm_path-\$sha1" >../../actual 2>../../actual2 ) && - test_i18ncmp expect actual + test_i18ncmp expect actual && + test_i18ncmp expect2 actual2 ' test_expect_success 'setup nested submodules' ' @@ -172,7 +180,7 @@ EOF test_expect_success 'test messages from "foreach --recursive"' ' ( cd clone2 && - git submodule foreach --recursive "true" > ../actual + git submodule foreach --recursive "true" 2>../actual ) && test_i18ncmp expect actual ' @@ -192,7 +200,7 @@ test_expect_success 'test messages from "foreach --recursive" from subdirectory' cd clone2 && mkdir untracked && cd untracked && - git submodule foreach --recursive >../../actual + git submodule foreach --recursive 2>../../actual ) && test_i18ncmp expect actual ' @@ -210,9 +218,10 @@ EOF test_expect_success 'test "foreach --quiet --recursive"' ' ( cd clone2 && - git submodule foreach -q --recursive "echo \$name-\$path" > ../actual + git submodule foreach -q --recursive "echo \$name-\$path" >../actual 2> ../actual2 ) && - test_cmp expect actual + test_cmp expect actual && + test_must_be_empty actual2 ' test_expect_success 'use "update --recursive" to checkout all submodules' ' -- 2.8.0.32.g71f8beb.dirty