Repository navigation
fix(pack): single-pack reuse and tolerant MIDX bitmap verification - #46
Conversation
yordis
commented
Oct 29, 2026
- Multi-pack reuse produced thin packs whose bases the client never received, and bitmap verification failures sent compaction into a loop.
- Brings in pack: single-pack reuse and tolerant MIDX bitmap verification tobi/walgit#108 by redhox, cherry-picked with original authorship; the upstream test fails on our main and passes with this change.
- Stop setting pack.allowPackReuse=multi: multi-pack reuse produces thin packs whose delta bases are absent for a cloning client, ending in unresolved deltas and pack-objects crashes. - Treat a failing rev-list --test-bitmap as non-fatal: Git selects only a subset of commits for a MIDX bitmap, so a branch tip is not guaranteed to have one. Ordinary traversal stays available and the fold can seal. - Refresh the commit-graph before building the MIDX bitmap. - Clear a stale multi-pack-index.lock left by a crashed writer. - Back off exponentially per repository after repeated maintenance failures. (cherry picked from commit 94cc5e1) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
PR SummaryMedium Risk Overview MIDX serialization: Adds an exclusive repo-local lock ( Bitmap build: Refreshes the reachable commit-graph before Clone safety: Sets Maintenance: Per-repo exponential backoff (capped at 1h) after a failed maintenance unit, so broken repos are not repacked every pass; successes clear the backoff counter. Reviewed by Cursor Bugbot for commit fcc33d2. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 59 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 776bd4c. Configure here.
An age-based removal could steal the lock from a live bitmap write on a large repository, and pack sync and the pack lifecycle can both write the MIDX without sharing a lease. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
