From: Taylor Blau <me@ttaylorr.com>
To: Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, me@ttaylorr.com, jnareb@gmail.com,
garimasigit@gmail.com, Derrick Stolee <dstolee@microsoft.com>
Subject: Re: [PATCH 1/3] revision: complicated pathspecs disable filters
Date: Sun, 12 Apr 2020 16:22:10 -0600 [thread overview]
Message-ID: <20200412222210.GA53057@syl.local> (raw)
In-Reply-To: <9cc31c289aa785f026eec84452ed68e80505d95e.1586566981.git.gitgitgadget@gmail.com>
Hi Stolee,
On Sat, Apr 11, 2020 at 01:02:59AM +0000, Derrick Stolee via GitGitGadget wrote:
> From: Derrick Stolee <dstolee@microsoft.com>
>
> The changed-path Bloom filters work only when we can compute an
> explicit Bloom filter key in advance. When a pathspec is given
> that allows case-insensitive checks or wildcard matching, we
> must disable the Bloom filter performance checks.
>
> By checking the pathspec in prepare_to_use_bloom_filters(), we
> avoid setting up the Bloom filter data and thus revert to the
> usual logic.
All makes sense to me, and this seems like the only reasonable thing
*to* do in this situation. That's fine, since we're not regressing,
we're just not using Bloom filters.
> Before this change, the following tests would fail*:
>
> t6004-rev-list-path-optim.sh (Tests 6-7)
> t6130-pathspec-noglob.sh (Tests 3-6)
> t6131-pathspec-icase.sh (Tests 3-5)
>
> *These tests would fail when using GIT_TEST_COMMIT_GRAPH and
> GIT_TEST_COMMIT_GRAPH_BLOOM_FILTERS except that the latter
> environment variable was not set up correctly to write the changed-
> path Bloom filters in the test suite. That will be fixed in the
> next change.
Nicely done.
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---
> revision.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/revision.c b/revision.c
> index 2b06ee739c8..e37b5b06108 100644
> --- a/revision.c
> +++ b/revision.c
> @@ -661,6 +661,15 @@ static void prepare_to_use_bloom_filter(struct rev_info *revs)
> if (!revs->commits)
> return;
>
I certainly wouldn't complain about a comment here explaining these
three checks, but I suppose that the rationale is only a 'git blame'
away (and I guess that is faster now after this series ;-)).
> + if (revs->prune_data.has_wildcard)
> + return;
> + if (revs->prune_data.nr > 1)
> + return;
> + if (revs->prune_data.magic ||
> + (revs->prune_data.nr &&
> + revs->prune_data.items[0].magic))
> + return;
> +
> repo_parse_commit(revs->repo, revs->commits->item);
>
> if (!revs->repo->objects->commit_graph)
> --
> gitgitgadget
Reviewed-by: Taylor Blau <me@ttaylorr.com>
Thanks,
Taylor
next prev parent reply other threads:[~2020-04-12 22:22 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-11 1:02 [PATCH 0/3] Integrate changed-path Bloom filters with 'git blame' Derrick Stolee via GitGitGadget
2020-04-11 1:02 ` [PATCH 1/3] revision: complicated pathspecs disable filters Derrick Stolee via GitGitGadget
2020-04-11 21:40 ` Junio C Hamano
2020-04-13 11:49 ` Derrick Stolee
2020-04-14 18:25 ` Junio C Hamano
2020-04-15 13:27 ` Derrick Stolee
2020-04-15 18:37 ` Derrick Stolee
2020-04-15 19:32 ` Junio C Hamano
2020-04-15 19:39 ` Junio C Hamano
2020-04-15 21:25 ` Junio C Hamano
2020-04-16 0:56 ` Taylor Blau
2020-04-15 22:18 ` Jakub Narębski
2020-04-16 0:52 ` Taylor Blau
2020-04-16 13:26 ` Derrick Stolee
2020-04-16 16:33 ` Taylor Blau
2020-04-16 18:02 ` Junio C Hamano
2020-04-12 22:22 ` Taylor Blau [this message]
2020-04-12 22:30 ` Junio C Hamano
2020-04-13 0:07 ` Taylor Blau
2020-04-13 11:54 ` Derrick Stolee
2020-04-11 1:03 ` [PATCH 2/3] commit: write commit-graph with bloom filters Derrick Stolee via GitGitGadget
2020-04-11 21:57 ` Junio C Hamano
2020-04-12 20:51 ` Taylor Blau
2020-04-13 12:08 ` Derrick Stolee
2020-04-13 22:11 ` Junio C Hamano
2020-04-11 1:03 ` [PATCH 3/3] blame: use changed-path Bloom filters Derrick Stolee via GitGitGadget
2020-04-11 22:03 ` Junio C Hamano
2020-04-12 7:39 ` Eric Sunshine
2020-04-11 21:30 ` [PATCH 0/3] Integrate changed-path Bloom filters with 'git blame' Junio C Hamano
2020-04-13 14:45 ` [PATCH v2 0/4] " Derrick Stolee via GitGitGadget
2020-04-13 14:45 ` [PATCH v2 1/4] revision: complicated pathspecs disable filters Derrick Stolee via GitGitGadget
2020-04-13 16:09 ` Taylor Blau
2020-04-13 22:18 ` Junio C Hamano
2020-04-13 14:45 ` [PATCH v2 2/4] commit: write commit-graph with Bloom filters Derrick Stolee via GitGitGadget
2020-04-13 16:12 ` Taylor Blau
2020-04-13 22:21 ` Junio C Hamano
2020-04-14 15:04 ` Derrick Stolee
2020-04-14 17:26 ` Junio C Hamano
2020-04-14 17:40 ` Derrick Stolee
2020-04-15 0:17 ` Taylor Blau
2020-04-13 14:45 ` [PATCH v2 3/4] commit-graph: write commit-graph in more tests Derrick Stolee via GitGitGadget
2020-04-13 14:45 ` [PATCH v2 4/4] blame: use changed-path Bloom filters Derrick Stolee via GitGitGadget
2020-04-13 16:21 ` [PATCH v2 0/4] Integrate changed-path Bloom filters with 'git blame' Taylor Blau
2020-04-16 20:14 ` [PATCH v3 0/3] " Derrick Stolee via GitGitGadget
2020-04-16 20:14 ` [PATCH v3 1/3] revision: complicated pathspecs disable filters Derrick Stolee via GitGitGadget
2020-06-07 20:33 ` SZEDER Gábor
2020-04-16 20:14 ` [PATCH v3 2/3] tests: write commit-graph with Bloom filters Derrick Stolee via GitGitGadget
2020-04-16 20:14 ` [PATCH v3 3/3] blame: use changed-path " Derrick Stolee via GitGitGadget
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=20200412222210.GA53057@syl.local \
--to=me@ttaylorr.com \
--cc=dstolee@microsoft.com \
--cc=garimasigit@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=jnareb@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.