Git development
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Toon Claes <toon@iotcl.com>, Jeff King <peff@peff.net>
Cc: git@vger.kernel.org,  Gusted <gusted@codeberg.org>
Subject: Re: [PATCH 4/4] last-modified: keep per-path Bloom filters for wildcard pathspecs
Date: Tue, 04 Aug 2026 15:19:57 -0700	[thread overview]
Message-ID: <xmqqzez1sf3m.fsf@gitster.g> (raw)
In-Reply-To: <20260718081407.GC22588@coredump.intra.peff.net> (Jeff King's message of "Sat, 18 Jul 2026 04:14:07 -0400")

Jeff King <peff@peff.net> writes:

> On Fri, Jul 17, 2026 at 09:16:34PM +0200, Toon Claes wrote:
>
>> > +	/*
>> > +	 * prepare_revision_walk() clears bloom_filter_settings for pathspecs
>> > +	 * without a Bloom key. Restore it so the per-path check keeps working.
>> > +	 */
>> > +	if (!lm->rev.bloom_filter_settings)
>> > +		lm->rev.bloom_filter_settings =
>> > +			get_bloom_filter_settings(lm->rev.repo);
>> > +
>> 
>> @Peff, as far I could tell:
>> 
>> * This change was not needed to be able to use the Bloom filters with
>>   the pathspec.
>
> Ah, right. In my earlier attempt I came at it from the bottom up: I
> found the bloom_keyvec, saw how it was populated, and then worked my way
> back to prepare_to_use_bloom_filter() without going further.
>
> But it is much nicer if we can rely on prepare_revision_walk() here, as
> we don't need to make an additional function public.
> ...
> It's mostly academic, as both of the pointers (if not NULL) would always
> point to the same setting that ultimately come from the repository
> object. But it feels cleaner for them to keep their own pointers,
> because that pointer may also signal "do we have usable bloom filters".
> We are a little lucky in dodging a bug here: last-modified uses the
> pointer for that purpose, but if revision.c did so also, they'd
> conflict.
>
>   Side note: this is really a repository property, so it would be nice
>   if we could just do:
>
>     repo_bloom_filter_contains(filter, &ent->key);
>
>   without managing the settings pointer ourselves at all. But the cost
>   to fetch it from the graph linked list is not totally trivial, so we'd
>   probably end up having to cache it somewhere. I don't know if that's
>   worth it (plus last-modified would still have to keep a boolean
>   somewhere to decide whether it is using bloom filters or not).

So what happened to this discussion?  Are we happy with the set of
patches in v1 after all, or are we still thinking it over?

Thanks.

  reply	other threads:[~2026-08-04 22:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-17 15:46 [PATCH 0/4] last-modified: use the pathspec's Bloom key to pre-filter commits Toon Claes
2026-07-17 15:46 ` [PATCH 1/4] revision: move bloom keyvec precondition into function Toon Claes
2026-07-18  7:57   ` Jeff King
2026-08-05 19:16     ` Toon Claes
2026-08-05 20:32       ` Jeff King
2026-07-17 15:47 ` [PATCH 2/4] revision: expose check for paths maybe changed in Bloom filter Toon Claes
2026-07-17 20:47   ` Junio C Hamano
2026-07-17 23:26     ` Taylor Blau
2026-07-17 15:47 ` [PATCH 3/4] last-modified: check pathspec against Bloom filter first Toon Claes
2026-07-17 23:05   ` Taylor Blau
2026-07-18  8:37     ` Jeff King
2026-07-18 21:22       ` Taylor Blau
2026-07-20  9:42         ` Jeff King
2026-07-17 15:47 ` [PATCH 4/4] last-modified: keep per-path Bloom filters for wildcard pathspecs Toon Claes
2026-07-17 19:16   ` Toon Claes
2026-07-18  8:14     ` Jeff King
2026-08-04 22:19       ` Junio C Hamano [this message]
2026-08-05  0:43         ` Taylor Blau
2026-08-05 16:01           ` Junio C Hamano
2026-08-05  1:18         ` Jeff King
2026-07-17 23:18   ` Taylor Blau
2026-07-17 19:13 ` [PATCH 0/4] last-modified: use the pathspec's Bloom key to pre-filter commits Toon Claes
2026-08-07 18:26 ` [PATCH v2 0/6] " Toon Claes
2026-08-07 18:26   ` [PATCH v2 1/6] revision: move bloom keyvec precondition into function Toon Claes
2026-08-07 18:26   ` [PATCH v2 2/6] revision: expose check for paths maybe changed in Bloom filter Toon Claes
2026-08-07 18:26   ` [PATCH v2 3/6] bloom: add helper to check if any key in a vector is present Toon Claes
2026-08-07 18:26   ` [PATCH v2 4/6] revision: add Bloom check that includes parent directories Toon Claes
2026-08-07 18:26   ` [PATCH v2 5/6] last-modified: check pathspec against Bloom filter first Toon Claes
2026-08-07 18:26   ` [PATCH v2 6/6] last-modified: keep per-path Bloom filters for wildcard pathspecs Toon Claes
2026-08-08 17:07     ` Junio C Hamano

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=xmqqzez1sf3m.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=gusted@codeberg.org \
    --cc=peff@peff.net \
    --cc=toon@iotcl.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