mbox series

[0/4] pack-bitmap: use bitmaps for traversals with '--filter=tree:0'

Message ID cover.1587597151.git.me@ttaylorr.com (mailing list archive)
Headers show
Series pack-bitmap: use bitmaps for traversals with '--filter=tree:0' | expand

Message

Taylor Blau April 22, 2020, 11:13 p.m. UTC
Hi,

This series contains a handful of patches to make object traversals with
'--filter=tree:0' be bitmaps-compatible. They have been kicking around
in GitHub's fork for some time, and we use them on every
'--filter=tree:0' fetch.

This is a prerequisite for a future series which will introduce
configuration in upload-pack to indicate which filter choices are and
aren't supported [1]. Since sending [1], GitHub's fork has grown support
for

  [uploadpack 'filter.tree']
    maxDepth = <n>

...and so I figure that we could get this smaller series out for
discussion before introducing that option, which doesn't make sense
without having some faster variant of the 'tree' filter for certain
values of 'n'.

Thanks,
Taylor

[1]: https://lore.kernel.org/git/cover.1584477196.git.me@ttaylorr.com/

Jeff King (2):
  list-objects-filter: treat NULL filter_options as "disabled"
  pack-bitmap: pass object filter to fill-in traversal

Taylor Blau (2):
  pack-bitmap.c: make object filtering functions generic
  pack-bitmap.c: support 'tree:0' filtering

 list-objects-filter.c              |  3 ++
 pack-bitmap.c                      | 72 +++++++++++++++++++++++-------
 t/perf/p5310-pack-bitmaps.sh       | 10 +++++
 t/t6113-rev-list-bitmap-filters.sh | 21 +++++++++
 4 files changed, 90 insertions(+), 16 deletions(-)

--
2.26.2.112.g65467a058e

Comments

Jeff King April 24, 2020, 5:43 a.m. UTC | #1
On Wed, Apr 22, 2020 at 05:13:19PM -0600, Taylor Blau wrote:

> This series contains a handful of patches to make object traversals with
> '--filter=tree:0' be bitmaps-compatible. They have been kicking around
> in GitHub's fork for some time, and we use them on every
> '--filter=tree:0' fetch.

As an author of half the patches, you can take my review with a grain of
salt, but these all look good to me (modulo one typo fix in a commit
message).

-Peff