On Saturday, July 13, 2024 10:23 PM, Junio C Hamano wrote: ><rsbecker@xxxxxxxxxxxxx> writes: > >> Here is the breakage. This looks like a non-portable dependency on >> /dev/zero was introduced. >> >> expecting success of 4153.6 '--reject overrides --no-reject': >> rm -fr .git/rebase-apply && >> git reset --hard && >> git checkout first && >> rm -f file.rej && >> >> test_must_fail git am --no-reject side1.eml && >> test_path_is_dir .git/rebase-apply && >> test_path_is_missing file.rej && >> >> test_must_fail git am --retry --reject </dev/zero && >> test_path_is_dir .git/rebase-apply && >> test_path_is_file file.rej > >I think you are blaming 53ce2e3f (am: add explicit "--retry" option, 2024-06-06), >but /dev/zero was in use before that commit. > > diff --git a/t/t4153-am-resume-override-opts.sh b/t/t4153-am-resume- >override-opts.sh > ... > @@ -40,7 +44,7 @@ test_expect_success TTY '--3way overrides --no-3way' ' > > # Applying side1 with am --3way will succeed due to the threeway-merge. > # Applying side2 will fail as --3way does not apply to it. > - test_must_fail test_terminal git am --3way </dev/zero && > + test_must_fail git am --retry --3way && > test_path_is_dir .git/rebase-apply && > test side1 = "$(cat file2)" > ' > >In this hunk, use of /dev/zero goes away; if /dev/zero were a problem, you would >have been failing this test already. > > @@ -94,7 +98,7 @@ test_expect_success TTY '--reject overrides --no-reject' ' > test_path_is_dir .git/rebase-apply && > test_path_is_missing file.rej && > > - test_must_fail test_terminal git am --reject </dev/zero && > + test_must_fail git am --retry --reject </dev/zero && > test_path_is_dir .git/rebase-apply && > test_path_is_file file.rej > ' > >And this hunk uses /dev/zero the same way before and after. The older use of >/dev/zero in these tests were from 852a1710 (am: let command-line options >override saved options, 2015-08-04), which was part of v2.6.0 that was tagged in >late Sep 2015. > >In short this is nothing new in this release. > >Preparing a garbage file that is sufficiently large (like 1kB) and feeding from that file >to the commands instead of from /dev/null may be sufficient to reduce the >dependence of /dev/zero but given that this is ancient, there are many other uses >of /dev/zero in the test directory, it does not seem ultra-urgent to address this, at >least to me. Certainly not during the pre-release freeze. > >Thanks for a report. I think the /dev/zero usage was being hidden. We definitely do not have /dev/zero, but I think the prior hung failed anyway, so the test diff not differentiate between the test fail and using /dev/zero. So it looks like --retry. This worked at 2.44.2 and for years before that.