Subject: Re: t4216-log-bloom.sh broken ?

From: Junio C Hamano <[email-masked]>
Date: Thu, 02 May 2024 13:15:57 -0700

Junio C Hamano <[email-masked]> writes:

> I am curious what other differences Torsten will find out between
> good macs and bad ones.  Perhaps we can narrow down the bad apples?

So, "no, your 'mv' is broken" seems to be the answer to the question
on the Subject line, and it is rather well-known, it seems.

----- >8 --------- >8 --------- >8 --------- >8 -----
Subject: [PATCH] t/lib-chunk: work around broken "mv" on some vintage of macOS

When the destination is read-only, "mv" on some version of macOS
asks whether to replace the destination even though in the test its
stdin is not a terminal (and thus doesn't conform to POSIX[1]).

The helper to corrupt a chunk-file is designed to work on the
files like commit-graph and multi-pack-index files that are
generally read-only, so use "mv -f" to work around this issue.

Helped-by: SZEDER Gábor <[email-masked]>
Signed-off-by: Junio C Hamano <[email-masked]>
---
 t/lib-chunk.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/t/lib-chunk.sh b/t/lib-chunk.sh
index a7cd9c3c6d..9f01df190b 100644
--- a/t/lib-chunk.sh
+++ b/t/lib-chunk.sh
@@ -13,5 +13,6 @@ corrupt_chunk_file () {
 	fn=$1; shift
 	perl "$TEST_DIRECTORY"/lib-chunk/corrupt-chunk-file.pl \
 		"$@" <"$fn" >"$fn.tmp" &&
-	mv "$fn.tmp" "$fn"
+	# some vintages of macOS 'mv' fails to overwrite a read-only file.
+	mv -f "$fn.tmp" "$fn"
 }
-- 
2.45.0-31-gd4cc1ec35f