Sync with maint
[gitweb.git] / t / t7700-repack.sh
index 6162e2a8e66f6f0e42e0a8ba6ee3b728e8e84918..0e9af832c9790f3e329fc59d61b8bc177c151b48 100755 (executable)
@@ -221,5 +221,32 @@ test_expect_success 'repack --keep-pack' '
        )
 '
 
-test_done
+test_expect_success 'bitmaps are created by default in bare repos' '
+       git clone --bare .git bare.git &&
+       git -C bare.git repack -ad &&
+       bitmap=$(ls bare.git/objects/pack/*.bitmap) &&
+       test_path_is_file "$bitmap"
+'
 
+test_expect_success 'incremental repack does not complain' '
+       git -C bare.git repack -q 2>repack.err &&
+       test_must_be_empty repack.err
+'
+
+test_expect_success 'bitmaps can be disabled on bare repos' '
+       git -c repack.writeBitmaps=false -C bare.git repack -ad &&
+       bitmap=$(ls bare.git/objects/pack/*.bitmap 2>/dev/null || :) &&
+       test -z "$bitmap"
+'
+
+test_expect_success 'no bitmaps created if .keep files present' '
+       pack=$(ls bare.git/objects/pack/*.pack) &&
+       test_path_is_file "$pack" &&
+       keep=${pack%.pack}.keep &&
+       >"$keep" &&
+       git -C bare.git repack -ad &&
+       find bare.git/objects/pack/ -type f -name "*.bitmap" >actual &&
+       test_must_be_empty actual
+'
+
+test_done