fetch: allow explicit --refmap to override configuration
[gitweb.git] / t / t5310-pack-bitmaps.sh
index d3a3afaba821f8b70c5f365f1046ba7a707e5085..f4f02ba918535d5c40a30585a54469bc12ab96d3 100755 (executable)
@@ -3,6 +3,10 @@
 test_description='exercise basic bitmap functionality'
 . ./test-lib.sh
 
+objpath () {
+       echo ".git/objects/$(echo "$1" | sed -e 's|\(..\)|\1/|')"
+}
+
 test_expect_success 'setup repo with moderate-sized history' '
        for i in $(test_seq 1 10); do
                test_commit $i
@@ -91,7 +95,10 @@ test_expect_success 'fetch (partial bitmap)' '
 
 test_expect_success 'incremental repack cannot create bitmaps' '
        test_commit more-1 &&
-       test_must_fail git repack -d
+       find .git/objects/pack -name "*.bitmap" >expect &&
+       git repack -d &&
+       find .git/objects/pack -name "*.bitmap" >actual &&
+       test_cmp expect actual
 '
 
 test_expect_success 'incremental repack can disable bitmaps' '
@@ -112,6 +119,33 @@ test_expect_success 'fetch (full bitmap)' '
        test_cmp expect actual
 '
 
+test_expect_success 'create objects for missing-HAVE tests' '
+       blob=$(echo "missing have" | git hash-object -w --stdin) &&
+       tree=$(printf "100644 blob $blob\tfile\n" | git mktree) &&
+       parent=$(echo parent | git commit-tree $tree) &&
+       commit=$(echo commit | git commit-tree $tree -p $parent) &&
+       cat >revs <<-EOF
+       HEAD
+       ^HEAD^
+       ^$commit
+       EOF
+'
+
+test_expect_success 'pack with missing blob' '
+       rm $(objpath $blob) &&
+       git pack-objects --stdout --revs <revs >/dev/null
+'
+
+test_expect_success 'pack with missing tree' '
+       rm $(objpath $tree) &&
+       git pack-objects --stdout --revs <revs >/dev/null
+'
+
+test_expect_success 'pack with missing parent' '
+       rm $(objpath $parent) &&
+       git pack-objects --stdout --revs <revs >/dev/null
+'
+
 test_lazy_prereq JGIT '
        type jgit
 '