Thread (33 messages) 33 messages, 3 authors, 18d ago

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help