On Wed, Oct 23, 2019 at 8:04 AM Denton Liu <liu.denton@xxxxxxxxx> wrote: > Before, the output of `git diff HEAD` would always be piped to > sanitize_conflicted_diff(). However, since the Git command was upstream > of the pipe, in case the Git command fails, the return code would be > lost. Rewrite into separate statements so that the return code is no > longer lost. > > Since only the command `git diff HEAD` was being piped to > sanitize_conflicted_diff(), move the command into the function and rename > it to print_sanitized_diff(). > > Signed-off-by: Denton Liu <liu.denton@xxxxxxxxx> > --- > diff --git a/t/t4108-apply-threeway.sh b/t/t4108-apply-threeway.sh > @@ -4,11 +4,12 @@ test_description='git apply --3way' > -sanitize_conflicted_diff () { > +print_sanitized_diff () { > + git diff HEAD >diff.raw && > sed -e ' > /^index /d > s/^\(+[<>][<>][<>][<>]*\) .*/\1/ > - ' > + ' diff.raw > } Nit: By hard-coding "HEAD" in this function, you lose the flexibility of the original. An alternative would have been to accept the ref against which to diff as an argument to this function: print_sanitized_diff () { git diff "$@" >diff.raw && ... Or, better yet, keep the original design and pass the diff in as the shell function's input, so a caller would say: git diff HEAD >diff.raw && sanitize_conflicted_diff <diff.raw >expect.diff && However, not necessarily worth a re-roll if we never expect anyone to pass anything other than "HEAD".