Message ID | cc8639fc29db18da00ba2a95a1305efc3ea24205.1640010777.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | builtin add -p: fix hunk splitting | expand |
"Phillip Wood via GitGitGadget" <gitgitgadget@gmail.com> writes: > From: Phillip Wood <phillip.wood@dunelm.org.uk> > > Clean up some test constructs in preparation for extending the tests > in the next commit. There are three small changes, I've grouped them > together as they're so small it didn't seem worth creating three > separate commits. > 1 - "cat file | sed expression" is better written as > "sed expression file". > 2 - Follow our usual practice of redirecting the output of git > commands to a file rather than piping it into another command. > 3 - Use test_write_lines rather than 'printf "%s\n"'. All good points. Somehow people seem to forget "do not cat a single file into a pipe". > @@ -373,9 +373,9 @@ test_expect_success 'setup expected' ' > test_expect_success 'add first line works' ' > git commit -am "clear local changes" && > git apply patch && > - printf "%s\n" s y y | git add -p file 2>error | > - sed -n -e "s/^([1-2]\/[1-2]) Stage this hunk[^@]*\(@@ .*\)/\1/" \ > - -e "/^[-+@ \\\\]"/p >output && > + test_write_lines s y y | git add -p file 2>error >raw-output && > + sed -n -e "s/^([1-2]\/[1-2]) Stage this hunk[^@]*\(@@ .*\)/\1/" \ > + -e "/^[-+@ \\\\]"/p raw-output >output && Looks good. Thanks.
diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index 207714655f2..77de0029ba5 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -347,7 +347,7 @@ test_expect_success 'setup patch' ' # Expected output, diff is similar to the patch but w/ diff at the top test_expect_success 'setup expected' ' echo diff --git a/file b/file >expected && - cat patch |sed "/^index/s/ 100644/ 100755/" >>expected && + sed "/^index/s/ 100644/ 100755/" patch >>expected && cat >expected-output <<-\EOF --- a/file +++ b/file @@ -373,9 +373,9 @@ test_expect_success 'setup expected' ' test_expect_success 'add first line works' ' git commit -am "clear local changes" && git apply patch && - printf "%s\n" s y y | git add -p file 2>error | - sed -n -e "s/^([1-2]\/[1-2]) Stage this hunk[^@]*\(@@ .*\)/\1/" \ - -e "/^[-+@ \\\\]"/p >output && + test_write_lines s y y | git add -p file 2>error >raw-output && + sed -n -e "s/^([1-2]\/[1-2]) Stage this hunk[^@]*\(@@ .*\)/\1/" \ + -e "/^[-+@ \\\\]"/p raw-output >output && test_must_be_empty error && git diff --cached >diff && diff_cmp expected diff &&