]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t5319-multi-pack-index.sh
upload-pack: move allow_unadvertised_object_request to upload_pack_data
[thirdparty/git.git] / t / t5319-multi-pack-index.sh
index 22240fd30b482f201daa69ada8ffcb6248a24638..7214cab36c0f74ef4c731a189b2490c14a2fa6e4 100755 (executable)
@@ -526,10 +526,10 @@ test_expect_success 'repack with minimum size does not alter existing packs' '
                cd dup &&
                rm -rf .git/objects/pack &&
                mv .git/objects/pack-backup .git/objects/pack &&
-               touch -m -t 201901010000 .git/objects/pack/pack-D* &&
-               touch -m -t 201901010001 .git/objects/pack/pack-C* &&
-               touch -m -t 201901010002 .git/objects/pack/pack-B* &&
-               touch -m -t 201901010003 .git/objects/pack/pack-A* &&
+               test-tool chmtime =-5 .git/objects/pack/pack-D* &&
+               test-tool chmtime =-4 .git/objects/pack/pack-C* &&
+               test-tool chmtime =-3 .git/objects/pack/pack-B* &&
+               test-tool chmtime =-2 .git/objects/pack/pack-A* &&
                ls .git/objects/pack >expect &&
                MINSIZE=$(test-tool path-utils file-size .git/objects/pack/*pack | sort -n | head -n 1) &&
                git multi-pack-index repack --batch-size=$MINSIZE &&
@@ -538,6 +538,33 @@ test_expect_success 'repack with minimum size does not alter existing packs' '
        )
 '
 
+test_expect_success 'repack respects repack.packKeptObjects=false' '
+       test_when_finished rm -f dup/.git/objects/pack/*keep &&
+       (
+               cd dup &&
+               ls .git/objects/pack/*idx >idx-list &&
+               test_line_count = 5 idx-list &&
+               ls .git/objects/pack/*.pack | sed "s/\.pack/.keep/" >keep-list &&
+               test_line_count = 5 keep-list &&
+               for keep in $(cat keep-list)
+               do
+                       touch $keep || return 1
+               done &&
+               git multi-pack-index repack --batch-size=0 &&
+               ls .git/objects/pack/*idx >idx-list &&
+               test_line_count = 5 idx-list &&
+               test-tool read-midx .git/objects | grep idx >midx-list &&
+               test_line_count = 5 midx-list &&
+               THIRD_SMALLEST_SIZE=$(test-tool path-utils file-size .git/objects/pack/*pack | sort -n | sed -n 3p) &&
+               BATCH_SIZE=$((THIRD_SMALLEST_SIZE + 1)) &&
+               git multi-pack-index repack --batch-size=$BATCH_SIZE &&
+               ls .git/objects/pack/*idx >idx-list &&
+               test_line_count = 5 idx-list &&
+               test-tool read-midx .git/objects | grep idx >midx-list &&
+               test_line_count = 5 midx-list
+       )
+'
+
 test_expect_success 'repack creates a new pack' '
        (
                cd dup &&