Here is a very small reroll of my series to permute values from an existing hash-cache when generating multi-pack reachability bitmaps. The only changes since last time are a slightly modified version of the performance tests which don't time generating the pack-bitmap. And the new test in t5326 no longer has a redundant `git config pack.writeBitmapHashCache` since it is true by default. It is based on the `tb/multi-pack-bitmaps` topic, which graduated to master. Thanks in advance for your review on this hopefully-final iteration :-). Taylor Blau (7): t/helper/test-bitmap.c: add 'dump-hashes' mode pack-bitmap.c: propagate namehash values from existing bitmaps midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps p5326: create missing 'perf-tag' tag p5326: don't set core.multiPackIndex unnecessarily p5326: generate pack bitmaps before writing the MIDX bitmap t5326: test propagating hashcache values Documentation/config/pack.txt | 4 +++ builtin/multi-pack-index.c | 21 +++++++++++++++ midx.c | 6 ++++- midx.h | 1 + pack-bitmap.c | 41 +++++++++++++++++++++++++----- pack-bitmap.h | 1 + t/helper/test-bitmap.c | 10 +++++++- t/perf/p5326-multi-pack-bitmaps.sh | 15 ++++++++--- t/t5326-multi-pack-bitmaps.sh | 30 ++++++++++++++++++++++ 9 files changed, 118 insertions(+), 11 deletions(-) Range-diff against v2: 1: 4f2b8d9530 = 1: 4f2b8d9530 t/helper/test-bitmap.c: add 'dump-hashes' mode 2: 2cd2f3aa5e = 2: 2cd2f3aa5e pack-bitmap.c: propagate namehash values from existing bitmaps 3: f0d8f106c2 = 3: f0d8f106c2 midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps 4: a8c6e845ad = 4: a8c6e845ad p5326: create missing 'perf-tag' tag 5: 191922c8f2 = 5: 191922c8f2 p5326: don't set core.multiPackIndex unnecessarily 6: 040bb40548 ! 6: 59b6914ef8 p5326: generate pack bitmaps before writing the MIDX bitmap @@ Commit message we have to rely on a single-pack bitmap to generate those values for us. Therefore, generate a pack bitmap before the MIDX one in order to ensure - that the MIDX bitmap has entries in its hash-cache. + that the MIDX bitmap has entries in its hash-cache. Since we don't want + to time generating the pack bitmap, move that to a non-perf test run + before we try to generate the MIDX bitmap. + + Likewise, get rid of the pack bitmap afterwords, to make certain that we + are not accidentally using it in the performance tests run later on. Signed-off-by: Taylor Blau <me@xxxxxxxxxxxx> ## t/perf/p5326-multi-pack-bitmaps.sh ## @@ t/perf/p5326-multi-pack-bitmaps.sh: test_expect_success 'create tags' ' + git tag --message="tag pointing to HEAD" perf-tag HEAD ' ++test_expect_success 'start with bitmapped pack' ' ++ git repack -adb ++' ++ test_perf 'setup multi-pack index' ' - git repack -ad && -+ git repack -adb && git multi-pack-index write --bitmap ' ++test_expect_success 'drop pack bitmap' ' ++ rm -f .git/objects/pack/pack-*.bitmap ++' ++ + test_full_bitmap + + test_expect_success 'create partial bitmap state' ' 7: fdf71432b3 ! 7: bb16125915 t5326: test propagating hashcache values @@ t/t5326-multi-pack-bitmaps.sh: test_expect_success 'pack.preferBitmapTips' ' + ( + cd repo && + -+ git config pack.writeBitmapHashCache true && -+ + test_commit base && + test_commit base2 && + git repack -adb && -- 2.33.0.96.g73915697e6