Code

t7700: test that 'repack -a' packs alternate packed objects
authorBrandon Casey <casey@nrlssc.navy.mil>
Thu, 13 Nov 2008 00:50:26 +0000 (18:50 -0600)
committerJunio C Hamano <gitster@pobox.com>
Thu, 13 Nov 2008 01:29:41 +0000 (17:29 -0800)
Previously, when 'repack -a' was called and there were no packs in the local
repository without a .keep file, the repack would fall back to calling
pack-objects with '--unpacked --incremental'. This resulted in the created
pack file, if any, to be missing the packed objects in the alternate object
store. Test that this specific case has been fixed.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7700-repack.sh

index 960bff47fafa846299bdd2d3dffcc30616bd0017..3f602ea7de498e9e60bd61c8f58b66947c9923fe 100755 (executable)
@@ -53,5 +53,21 @@ test_expect_success 'loose objects in alternate ODB are not repacked' '
        test -z "$found_duplicate_object"
 '
 
+test_expect_success 'packed obs in alt ODB are repacked even when local repo is packless' '
+       mkdir alt_objects/pack
+       mv .git/objects/pack/* alt_objects/pack &&
+       git repack -a &&
+       myidx=$(ls -1 .git/objects/pack/*.idx) &&
+       test -f "$myidx" &&
+       for p in alt_objects/pack/*.idx; do
+               git verify-pack -v $p | sed -n -e "/^[0-9a-f]\{40\}/p"
+       done | while read sha1 rest; do
+               if ! ( git verify-pack -v $myidx | grep "^$sha1" ); then
+                       echo "Missing object in local pack: $sha1"
+                       return 1
+               fi
+       done
+'
+
 test_done