On Mon, Jun 10, 2019 at 10:58:58AM +0200, Johannes Sixt wrote: > Subshells for pipelines are not required. This can save a number of > processes (if the shell does not optimize it away anyway). > > The patch was generated with the command > > sed -i 's/( *\(yes.*[^ ]\) *) *\&\&/\1 \&\&/' t7610-mergetool.sh > > with a manual fixup of the case having no && at the end. I think it would be great to include the corresponding numbers from the cover letter in each of the commit messages. > Signed-off-by: Johannes Sixt <j6t@xxxxxxxx> > --- > t/t7610-mergetool.sh | 170 +++++++++++++++++++++---------------------- > 1 file changed, 85 insertions(+), 85 deletions(-) > > diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh > index 5b61c10a9c..b67440882b 100755 > --- a/t/t7610-mergetool.sh > +++ b/t/t7610-mergetool.sh > @@ -131,13 +131,13 @@ test_expect_success 'custom mergetool' ' > git checkout -b test$test_count branch1 && > git submodule update -N && > test_must_fail git merge master && > - ( yes "" | git mergetool both ) && > - ( yes "" | git mergetool file1 file1 ) && > - ( yes "" | git mergetool file2 "spaced name" ) && > - ( yes "" | git mergetool subdir/file3 ) && > - ( yes "d" | git mergetool file11 ) && > - ( yes "d" | git mergetool file12 ) && > - ( yes "l" | git mergetool submod ) && > + yes "" | git mergetool both && > + yes "" | git mergetool file1 file1 && > + yes "" | git mergetool file2 "spaced name" && > + yes "" | git mergetool subdir/file3 && > + yes "d" | git mergetool file11 && > + yes "d" | git mergetool file12 && > + yes "l" | git mergetool submod && > test "$(cat file1)" = "master updated" && > test "$(cat file2)" = "master new" && > test "$(cat subdir/file3)" = "master new sub" && Another possibility for eliminating a few more subshells might be to turn these test "$(cat file1)" = "that"' checks into echo that >expect && test_cmp expect file1 because 'test_cmp' on Windows first compares the two files in shell and runs 'diff' only when there is a difference to report.