[PATCH v3 0/7] pack-bitmap: permute existing namehash values
flat view
STALE1846d
From: Taylor Blau <hidden>
Date: 2021-09-17 21:21:16
Revision v3 of 3 in this series.
Revisions (3)
- v1 [diff vs current]
- v2 [diff vs current]
- v3 current
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 [off-list ref]
## 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