summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Brandon Casey <casey@nrlssc.navy.mil>2008-11-12 18:50:26 -0600
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-11-12 17:29:41 -0800
commit3289b9dec56d34fe05f90c262d11adc0a61e16e7 (patch)
tree8717646125a87356c2585615baf42791863e9194
parentpack-objects: extend --local to mean ignore non-local loose objects too (diff)
downloadtgif-3289b9dec56d34fe05f90c262d11adc0a61e16e7.tar.xz
t7700: test that 'repack -a' packs alternate packed objects
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>
-rwxr-xr-xt/t7700-repack.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh
index 960bff47fa..3f602ea7de 100755
--- a/t/t7700-repack.sh
+++ b/t/t7700-repack.sh
@@ -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