Re: [PATCH v5 9/9] repack: exclude cruft pack(s) from the MIDX where possible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux