Subject: Re: What's cooking in git.git (Sep 2023, #05; Fri, 15)

From: SZEDER Gábor <[email-masked]>
Date: Sun, 24 Sep 2023 21:59:00 +0200

On Tue, Sep 19, 2023 at 02:32:00PM -0400, Taylor Blau wrote:
> > * tb/path-filter-fix (2023-08-30) 15 commits
> >  - bloom: introduce `deinit_bloom_filters()`
> >  - commit-graph: reuse existing Bloom filters where possible
> >  - object.h: fix mis-aligned flag bits table
> >  - commit-graph: drop unnecessary `graph_read_bloom_data_context`
> >  - commit-graph.c: unconditionally load Bloom filters
> >  - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`
> >  - bloom: prepare to discard incompatible Bloom filters
> >  - bloom: annotate filters with hash version
> >  - commit-graph: new filter ver. that fixes murmur3
> >  - repo-settings: introduce commitgraph.changedPathsVersion
> >  - t4216: test changed path filters with high bit paths
> >  - t/helper/test-read-graph: implement `bloom-filters` mode
> >  - bloom.h: make `load_bloom_filter_from_graph()` public
> >  - t/helper/test-read-graph.c: extract `dump_graph_info()`
> >  - gitformat-commit-graph: describe version 2 of BDAT
> >
> >  The Bloom filter used for path limited history traversal was broken
> >  on systems whose "char" is unsigned; update the implementation and
> >  bump the format version to 2.
> >
> >  Needs more work.
> >  cf. <[email-masked]>
> >  source: <[email-masked]>
> 
> I think that Jonathan's most recent round of this is ready to get merged
> up, cf. [3]. The outstanding issue you note in
> <[email-masked]> can be addressed separately, I
> believe. To that end, I have a RFC-level patch proposed here [4].

Besides the issue of not reading Bloom filter for root commits, that
message of mine also includes a test demonstrating that handling split
commit graph with layers containing different versions of Bloom
filters is broken.  That test still fails with the current version of
this patch series, i.e. what is currently in seen.  Jonathan provided
a patch that makes that test pass, and also noted that that test did
pass with his original design:

  https://public-inbox.org/git/[email-masked]/

I maintain that without test cases thoroughly covering the interaction
of different Bloom filter versions with split commit graphs this
series should not be merged.

> [3]: https://lore.kernel.org/git/[email-masked]/
> [4]: https://lore.kernel.org/git/[email-masked]/
> 
> Thanks,
> Taylor