Re: [PATCH 0/3] pack-objects: support bitmaps and delta-islands with `--path-walk`
From: Derrick Stolee <hidden>
Date: 2026-05-28 15:28:56
On 5/27/26 7:18 PM, Taylor Blau wrote:
Here is a trimmed-down reroll of my series to make `--path-walk` work
with reachability bitmaps and delta-islands. This series was originally
an RFC that was a companion to Stolee's recent patches to extend
`--filter` support to `--path-walk` [1].
Since the previous round, Stolee's series has graduated and incorporated
the filter-related patches from my earlier RFC [2]. What remains are the
three patches here that implement support for reachability bitmaps and
delta-islands under `--path-walk`.
* The first patch allows `--path-walk` to use reachability bitmaps when
they can answer the request, falling back to path-walk enumeration
when they cannot. It also lets bitmap writing see the same commit
candidates that the regular traversal would have shown to the bitmap
selector.
* The second patch is preparatory, and factors the
delta-islands-specific tree-depth recording from `show_object()` into
a helper.
* The final patch teaches the path-walk callback to perform the same
delta-islands side effects as the regular traversal: propagating
island marks for commits, and recording tree depths for trees. This
gives `resolve_tree_islands()` the same input in either enumeration
mode, so the existing island checks can be reused unchanged.I've applied these patches locally and confirmed that each one passes the test suite with GIT_TEST_PACK_PATH_WALK=1, which helps to confirm that the changes are correct (all existing bitmap tests create and use the bitmaps with --path-walk unless explicitly disabled). Should we add GIT_TEST_PACK_PATH_WALK=1 to the test-var CI build, now that this is going to be more commonly used? Do you have any end-to-end performance data to demonstrate that these changes are effective at scale? Are we still producing packfiles with the pack-file compression and now with .bitmap files? How does this impact the performance of a clone or fetch when using a bitmap index at read time? With that in mind, should we update any t/perf/ test to cover some of these scenarios? I'm running a few with GIT_TEST_PACK_PATH_WALK=1 on my laptop as a test, but it's taking a while. If you have stats ready from your local testing, then that would be interesting. Thanks, -Stolee