From: Taylor Blau <me@ttaylorr.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Derrick Stolee <stolee@gmail.com>, Jeff King <peff@peff.net>,
Elijah Newren <newren@gmail.com>
Subject: [RFC PATCH 0/7] pack-bitmap: resolve various `--path-walk` incompatibilities
Date: Sun, 3 May 2026 20:11:11 -0400 [thread overview]
Message-ID: <cover.1777853408.git.me@ttaylorr.com> (raw)
(Note to the maintainer, this is built on top of 'ds/path-walk-filters').
Between other tasks, I have been working on trying to integrate
`--path-walk` within GitHub's infrastructure. In order to do this,
`--path-walk` must work with features that GitHub depends on, such as
reachability bitmaps and delta-islands (along with filters, shallow,
etc., though more on that below).
I had been sitting on these patches for a few days in my fork before
Stolee sent his series in [1] which resolves incompatibilities between
the `--path-walk` option and various filter types. Since I figured that
others are working in this area I wanted to send a reworked version of
my series for a couple of reasons:
1. Since reviewers are already looking at this area as a consequence of
Stolee's series, this topic should be slightly easier to review
while the area is fresh.
2. In case Stolee (or others) are working on resolving the
incompatibility between `--path-walk` and either delta-islands or
reachability bitmaps, this series can either combine with those (if
any) or serve as inspiration (if others are in the process of
writing such series).
When writing this originally, I had borrowed the same filter-application
mechanism from bitmaps, which supports trivial filters (e.g., blob:none,
tree:0, and combinations therein). Stolee's series is a strict
improvement on that approach supporting sparse:<oid> filters as well, so
I reworked my filtering-related patches based on that.
The patches surrounding bitmaps and delta-islands are largely
unchanged from when I had originally written them:
* Supporting bitmaps with `--path-walk` is mostly straightforward, and
boils down to ensuring that the path-walk-specific object callback
indexes any commit(s) it sees for bitmapping.
* Supporting delta-islands with `--path-walk` required a bit more
surgery, and involves propagating island marks for commits in the
path-walk-specific callback, as well as recording tree depth
information in the same spot.
I'm submitting these patches as an RFC, since (a) I haven't thought
deeply about the approach taken here and could very well be on the wrong
track, and (b) in case Stolee or others want to combine forces here
and/or coordinate around each other.
Thanks in advance for your review!
[1]: https://lore.kernel.org/git/pull.2101.git.1777731354.gitgitgadget@gmail.com/
Taylor Blau (7):
pack-objects: update `--path-walk`'s existing incompatibilities
path-walk: support `tree:0` filter
path-walk: support `object:type` filter
path-walk: support `combine` filter
pack-objects: support reachability bitmaps with `--path-walk`
pack-objects: extract `record_tree_depth()` helper
pack-objects: support `--delta-islands` with `--path-walk`
Documentation/git-pack-objects.adoc | 10 +-
builtin/pack-objects.c | 62 ++++++---
path-walk.c | 63 +++++++--
t/t5310-pack-bitmaps.sh | 36 +++++
t/t5320-delta-islands.sh | 29 ++++
t/t6601-path-walk.sh | 196 ++++++++++++++++++++++++++++
6 files changed, 365 insertions(+), 31 deletions(-)
base-commit: 465ceb37112ddfc6338727887f4431e755bf1831
--
2.54.0.4.g6aa0d38a4ec
next reply other threads:[~2026-05-04 0:11 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-04 0:11 Taylor Blau [this message]
2026-05-04 0:11 ` [RFC PATCH 1/7] pack-objects: update `--path-walk`'s existing incompatibilities Taylor Blau
2026-05-04 12:22 ` Derrick Stolee
2026-05-04 0:11 ` [RFC PATCH 2/7] path-walk: support `tree:0` filter Taylor Blau
2026-05-04 12:30 ` Derrick Stolee
2026-05-04 21:55 ` Kristoffer Haugsbakk
2026-05-04 0:11 ` [RFC PATCH 3/7] path-walk: support `object:type` filter Taylor Blau
2026-05-04 12:32 ` Derrick Stolee
2026-05-04 0:11 ` [RFC PATCH 4/7] path-walk: support `combine` filter Taylor Blau
2026-05-04 0:11 ` [RFC PATCH 5/7] pack-objects: support reachability bitmaps with `--path-walk` Taylor Blau
2026-05-04 0:11 ` [RFC PATCH 6/7] pack-objects: extract `record_tree_depth()` helper Taylor Blau
2026-05-04 0:11 ` [RFC PATCH 7/7] pack-objects: support `--delta-islands` with `--path-walk` Taylor Blau
2026-05-04 12:13 ` [RFC PATCH 0/7] pack-bitmap: resolve various `--path-walk` incompatibilities Derrick Stolee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1777853408.git.me@ttaylorr.com \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=peff@peff.net \
--cc=stolee@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox