On Thu, Jun 19, 2025 at 07:30:33PM -0400, Taylor Blau wrote: > +test_expect_success 'repack --write-midx excludes cruft where possible' ' > + setup_cruft_exclude_tests exclude-cruft-when-possible && > + ( > + cd exclude-cruft-when-possible && > + > + GIT_TEST_MULTI_PACK_INDEX=0 \ > + git repack -d --geometric=2 --write-midx --write-bitmap-index && > + > + test-tool read-midx --show-objects $objdir >midx && > + cruft="$(ls $packdir/*.mtimes)" && > + test_grep ! "$(basename "$cruft" .mtimes).idx" midx && > + > + git rev-list --all --objects --no-object-names >reachable.raw && > + sort reachable.raw >reachable.objects && > + awk "/\.pack$/ { print \$1 }" <midx | sort >midx.objects && > + > + test_cmp reachable.objects midx.objects > + ) > +' This test (but none of the others) fails when run with: GIT_TEST_MULTI_PACK_INDEX=1 \ GIT_TEST_MULTI_PACK_INDEX_WRITE_INCREMENTAL=1 \ ./t7704-repack-cruft.sh The culprit is the incremental flag, but you need the first one for the second to do anything. The issue is that the cruft pack unexpectedly appears in the midx: error: '! grep pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.idx midx' did find a match in: header: 4d494458 1 20 6 3 chunks: pack-names oid-fanout oid-lookup object-offsets num_objects: 12 packs: pack-110f8bab659db6e691a75b6462d043214fd1da92.idx pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.idx pack-91db7b4b856b00c3e675824c5bc5389b6810037a.idx object-dir: .git/objects 07d4aa2eb79f3a92e1dadaee6ef6b883cdbba641 12 .git/objects/pack/pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.pack 139b20d8e6c5b496de61f033f642d0e3dbff528d 114 .git/objects/pack/pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.pack 25e18d2c3e3563b690593dcce936302010e6aa7e 12 .git/objects/pack/pack-110f8bab659db6e691a75b6462d043214fd1da92.pack 2bdf67abb163a4ffb2d7f3f0880c9fe5068ce782 270 .git/objects/pack/pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.pack 2f00a404aed7e63d867313d504bd0fccea53fd25 285 .git/objects/pack/pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.pack 5626abf0f72e58d7a153368ba57db4c673c0e171 182 .git/objects/pack/pack-91db7b4b856b00c3e675824c5bc5389b6810037a.pack 7c7cd714e262561f73f3079dfca4e8724682ac21 358 .git/objects/pack/pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.pack 8510665149157c2bc901848c3e0b746954e9cbd9 271 .git/objects/pack/pack-110f8bab659db6e691a75b6462d043214fd1da92.pack a7cddf35737959e1438bc929b665619e9e79bfee 138 .git/objects/pack/pack-91db7b4b856b00c3e675824c5bc5389b6810037a.pack d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 12 .git/objects/pack/pack-91db7b4b856b00c3e675824c5bc5389b6810037a.pack db6165b80a148f78daad30f4e29c7b77fe8f04c2 169 .git/objects/pack/pack-110f8bab659db6e691a75b6462d043214fd1da92.pack f719efd430d52bcfc8566a43b2eb655688d38871 517 .git/objects/pack/pack-45dcff625845dc0ad702f91d853d0950f9be0eb9.pack I'm not sure if it's just a funky interaction with the hacky GIT_TEST_* variables, or if it's a real bug. -Peff