t1450: use "mv -f" within loose object directory
authorJeff King <peff@peff.net>
Tue, 24 Jan 2017 13:27:49 +0000 (08:27 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Jan 2017 20:32:32 +0000 (12:32 -0800)
The loose objects are created with mode 0444. That doesn't
prevent them being overwritten by rename(), but some
versions of "mv" will be extra careful and prompt the user,
even without "-i".

Reportedly macOS does this, at least in the Travis builds.
The prompt reads from /dev/null, defaulting to "no", and the
object isn't moved. Then to make matters even more
interesting, it still returns "0" and the rest of the test
proceeds, but with a broken setup.

We can work around it by using "mv -f" to override the
prompt. This should work as it's already used in t5504 for
the same purpose.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1450-fsck.sh
index 509d69c90e066a2fd52169b2791a13b26c87f47f..d9cd99f2cb64f751fe8cb49065e0795bb2764ea9 100755 (executable)
@@ -536,7 +536,7 @@ test_expect_success 'fsck --connectivity-only' '
                # free to examine the type if it chooses.
                empty=.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 &&
                blob=$(echo unrelated | git hash-object -w --stdin) &&
-               mv $(sha1_file $blob) $empty &&
+               mv -f $(sha1_file $blob) $empty &&
 
                test_must_fail git fsck --strict &&
                git fsck --strict --connectivity-only &&