patcht8003: avoid suppressing git's exit code
2 messages between Mar 26, 2026 and Mar 26, 2026, from Trieu Huynh, Junio C Hamano.
Plain Markdown or JSON for tools and agents. Diffs are folded; open one to read it.
Trieu HuynhMar 26, 2026, 14:11 UTC on loreUpdate t8003-blame-corner-cases.sh to redirect git-blame output to a temporary file instead of piping it directly to not hide the exit code of git commands behind pipes, as a crash in git might go unnoticed.
Signed-off-by: Trieu Huynh <vikingtc4@gmail.com>
---
t/t8003-blame-corner-cases.sh | 42 +++++++++++++++++++++++------------
1 file changed, 28 insertions(+), 14 deletions(-)
Show changes to t/t8003-blame-corner-cases.sh +28 −14
diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh
index 731265541a..f753e26e82 100755
--- a/t/t8003-blame-corner-cases.sh
+++ b/t/t8003-blame-corner-cases.sh
@@ -50,67 +50,78 @@ test_expect_success setup '
test_expect_success 'straight copy without -C' '
- git blame uno | grep Second
+ git blame uno >actual &&
+ grep Second actual
'
test_expect_success 'straight move without -C' '
- git blame dos | grep Initial
+ git blame dos >actual &&
+ grep Initial actual
'
test_expect_success 'straight copy with -C' '
- git blame -C1 uno | grep Second
+ git blame -C1 uno >actual &&
+ grep Second actual
'
test_expect_success 'straight move with -C' '
- git blame -C1 dos | grep Initial
+ git blame -C1 dos >actual &&
+ grep Initial actual
'
test_expect_success 'straight copy with -C -C' '
- git blame -C -C1 uno | grep Initial
+ git blame -C -C1 uno >actual &&
+ grep Initial actual
'
test_expect_success 'straight move with -C -C' '
- git blame -C -C1 dos | grep Initial
+ git blame -C -C1 dos >actual &&
+ grep Initial actual
'
test_expect_success 'append without -C' '
- git blame -L2 tres | grep Second
+ git blame -L2 tres >actual &&
+ grep Second actual
'
test_expect_success 'append with -C' '
- git blame -L2 -C1 tres | grep Second
+ git blame -L2 -C1 tres >actual &&
+ grep Second actual
'
test_expect_success 'append with -C -C' '
- git blame -L2 -C -C1 tres | grep Second
+ git blame -L2 -C -C1 tres >actual &&
+ grep Second actual
'
test_expect_success 'append with -C -C -C' '
- git blame -L2 -C -C -C1 tres | grep Initial
+ git blame -L2 -C -C -C1 tres >actual &&
+ grep Initial actual
'
test_expect_success 'blame wholesale copy' '
- git blame -f -C -C1 HEAD^ -- cow | sed -e "$pick_fc" >current &&
+ git blame -f -C -C1 HEAD^ -- cow >actual &&
+ sed -e "$pick_fc" actual >current &&
cat >expected <<-\EOF &&
mouse-Initial
mouse-Second
@@ -122,7 +133,8 @@ test_expect_success 'blame wholesale copy' '
test_expect_success 'blame wholesale copy and more' '
- git blame -f -C -C1 HEAD -- cow | sed -e "$pick_fc" >current &&
+ git blame -f -C -C1 HEAD -- cow >actual &&
+ sed -e "$pick_fc" actual >current &&
cat >expected <<-\EOF &&
mouse-Initial
mouse-Second
@@ -144,7 +156,8 @@ test_expect_success 'blame wholesale copy and more in the index' '
EOF
git add horse &&
test_when_finished "git rm -f horse" &&
- git blame -f -C -C1 -- horse | sed -e "$pick_fc" >current &&
+ git blame -f -C -C1 -- horse >actual &&
+ sed -e "$pick_fc" actual >current &&
cat >expected <<-\EOF &&
mouse-Initial
mouse-Second
@@ -168,7 +181,8 @@ test_expect_success 'blame during cherry-pick with file rename conflict' '
(git cherry-pick HEAD@{1} || test $? -eq 1) &&
git show HEAD@{1}:rodent > rodent &&
git add rodent &&
- git blame -f -C -C1 rodent | sed -e "$pick_fc" >current &&
+ git blame -f -C -C1 rodent >actual &&
+ sed -e "$pick_fc" actual >current &&
cat >expected <<-\EOF &&
mouse-Initial
mouse-Second
--
2.53.0.719.g41688c1a23
Re: [GSoC PATCH] t8003: avoid suppressing git's exit code
Trieu Huynh <vikingtc4@gmail.com> writes:
Show 9 quoted lines
> Update t8003-blame-corner-cases.sh to redirect git-blame output
> to a temporary file instead of piping it directly to not hide
> the exit code of git commands behind pipes, as a crash in git
> might go unnoticed.
>
> Signed-off-by: Trieu Huynh <vikingtc4@gmail.com>
> ---
> t/t8003-blame-corner-cases.sh | 42 +++++++++++++++++++++++------------
> 1 file changed, 28 insertions(+), 14 deletions(-)
I see nothing wrong in the proposed log message nor in the patch text. Nicely done.
Having said that, we could be a little bit more ambitious and make this into a two-patch series, i.e.,
[1/2] does this exact change + "grep -> test_grep"
[2/2] modernises the style to remove blank lines at both ends of
each testShow 76 quoted lines
> diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh
> index 731265541a..f753e26e82 100755
> --- a/t/t8003-blame-corner-cases.sh
> +++ b/t/t8003-blame-corner-cases.sh
> @@ -50,67 +50,78 @@ test_expect_success setup '
>
> test_expect_success 'straight copy without -C' '
>
> - git blame uno | grep Second
> + git blame uno >actual &&
> + grep Second actual
>
> '
>
> test_expect_success 'straight move without -C' '
>
> - git blame dos | grep Initial
> + git blame dos >actual &&
> + grep Initial actual
>
> '
>
> test_expect_success 'straight copy with -C' '
>
> - git blame -C1 uno | grep Second
> + git blame -C1 uno >actual &&
> + grep Second actual
>
> '
>
> test_expect_success 'straight move with -C' '
>
> - git blame -C1 dos | grep Initial
> + git blame -C1 dos >actual &&
> + grep Initial actual
>
> '
>
> test_expect_success 'straight copy with -C -C' '
>
> - git blame -C -C1 uno | grep Initial
> + git blame -C -C1 uno >actual &&
> + grep Initial actual
>
> '
>
> test_expect_success 'straight move with -C -C' '
>
> - git blame -C -C1 dos | grep Initial
> + git blame -C -C1 dos >actual &&
> + grep Initial actual
>
> '
>
> test_expect_success 'append without -C' '
>
> - git blame -L2 tres | grep Second
> + git blame -L2 tres >actual &&
> + grep Second actual
>
> '
>
> test_expect_success 'append with -C' '
>
> - git blame -L2 -C1 tres | grep Second
> + git blame -L2 -C1 tres >actual &&
> + grep Second actual
>
> '
>
> test_expect_success 'append with -C -C' '
>
> - git blame -L2 -C -C1 tres | grep Second
> + git blame -L2 -C -C1 tres >actual &&
> + grep Second actual
>
Show 47 quoted lines
>
> test_expect_success 'append with -C -C -C' '
>
> - git blame -L2 -C -C -C1 tres | grep Initial
> + git blame -L2 -C -C -C1 tres >actual &&
> + grep Initial actual
>
> '
>
> test_expect_success 'blame wholesale copy' '
>
> - git blame -f -C -C1 HEAD^ -- cow | sed -e "$pick_fc" >current &&
> + git blame -f -C -C1 HEAD^ -- cow >actual &&
> + sed -e "$pick_fc" actual >current &&
> cat >expected <<-\EOF &&
> mouse-Initial
> mouse-Second
> @@ -122,7 +133,8 @@ test_expect_success 'blame wholesale copy' '
>
> test_expect_success 'blame wholesale copy and more' '
>
> - git blame -f -C -C1 HEAD -- cow | sed -e "$pick_fc" >current &&
> + git blame -f -C -C1 HEAD -- cow >actual &&
> + sed -e "$pick_fc" actual >current &&
> cat >expected <<-\EOF &&
> mouse-Initial
> mouse-Second
> @@ -144,7 +156,8 @@ test_expect_success 'blame wholesale copy and more in the index' '
> EOF
> git add horse &&
> test_when_finished "git rm -f horse" &&
> - git blame -f -C -C1 -- horse | sed -e "$pick_fc" >current &&
> + git blame -f -C -C1 -- horse >actual &&
> + sed -e "$pick_fc" actual >current &&
> cat >expected <<-\EOF &&
> mouse-Initial
> mouse-Second
> @@ -168,7 +181,8 @@ test_expect_success 'blame during cherry-pick with file rename conflict' '
> (git cherry-pick HEAD@{1} || test $? -eq 1) &&
> git show HEAD@{1}:rodent > rodent &&
> git add rodent &&
> - git blame -f -C -C1 rodent | sed -e "$pick_fc" >current &&
> + git blame -f -C -C1 rodent >actual &&
> + sed -e "$pick_fc" actual >current &&
> cat >expected <<-\EOF &&
> mouse-Initial
> mouse-Second