From e896912c5edb8f989a2d25e101b2eb14f1a56aa9 Mon Sep 17 00:00:00 2001 From: Brandon Casey Date: Sat, 28 Jun 2008 19:25:05 -0500 Subject: [PATCH] t7701-repack-unpack-unreachable.sh: check timestamp of unpacked objects Unpacked objects should receive the timestamp of the pack they were unpacked from. Check. Signed-off-by: Brandon Casey Signed-off-by: Junio C Hamano --- t/t7701-repack-unpack-unreachable.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/t/t7701-repack-unpack-unreachable.sh b/t/t7701-repack-unpack-unreachable.sh index 6a5211f187..31c340fd38 100755 --- a/t/t7701-repack-unpack-unreachable.sh +++ b/t/t7701-repack-unpack-unreachable.sh @@ -4,6 +4,10 @@ test_description='git-repack works correctly' . ./test-lib.sh +fsha1= +csha1= +tsha1= + test_expect_success '-A option leaves unreachable objects unpacked' ' echo content > file1 && git add . && @@ -44,4 +48,34 @@ test_expect_success '-A option leaves unreachable objects unpacked' ' git show $tsha1 ' +compare_mtimes () +{ + perl -e 'my $reference = shift; + foreach my $file (@ARGV) { + exit(1) unless(-f $file && -M $file == -M $reference); + } + exit(0); + ' -- "$@" +} + +test_expect_success 'unpacked objects receive timestamp of pack file' ' + fsha1path=$(echo "$fsha1" | sed -e "s|\(..\)|\1/|") && + fsha1path=".git/objects/$fsha1path" && + csha1path=$(echo "$csha1" | sed -e "s|\(..\)|\1/|") && + csha1path=".git/objects/$csha1path" && + tsha1path=$(echo "$tsha1" | sed -e "s|\(..\)|\1/|") && + tsha1path=".git/objects/$tsha1path" && + git branch transient_branch $csha1 && + git repack -a -d -l && + test ! -f "$fsha1path" && + test ! -f "$csha1path" && + test ! -f "$tsha1path" && + test 1 = $(ls -1 .git/objects/pack/pack-*.pack | wc -l) && + packfile=$(ls .git/objects/pack/pack-*.pack) && + git branch -D transient_branch && + sleep 1 && + git repack -A -l && + compare_mtimes "$packfile" "$fsha1path" "$csha1path" "$tsha1path" +' + test_done -- 2.11.4.GIT