Re: [PATCH 0/4] fix object flag pollution in "tag --contains"
- Date: Sat, 11 Mar 2017 14:06:55 +0100
- From: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx>
- Subject: Re: [PATCH 0/4] fix object flag pollution in "tag --contains"
On Thu, Mar 9, 2017 at 2:27 PM, Jeff King <peff@xxxxxxxx> wrote:
> On Thu, Mar 09, 2017 at 07:51:32AM -0500, Jeff King wrote:
>> Looking at this, I'm pretty sure that using "--contains" with "--merged"
>> has similar problems, as they both use the UNINTERESTING bit. So even
>> without your patch, there is a lurking bug.
Sorry about the late reply. Been a while since I was active on the git
ML, and my broken list search was searching for cc:me, not to:me. So I
sent my v3 in <20170310203348.675-1-avarab@xxxxxxxxx> without reading
> I wasn't able to come up with a simple case that actually demonstrates
> the bug. But I feel like it has to be triggerable with the right
> sequence of history.
The tag brute force script I hacked up
(https://gist.github.com/avar/45cf288ce7cdc43e7395c6cbf9a98d68) is now
at >1k iterations without finding anything. But of course it may be
broken / this may not be producible on git.git
> Even without that, though, I feel like moving away from this flag usage
> is a good cleanup. Here's a cleaned-up series. What do you think of
> building your patch on top?
> We can do it the other way around if you prefer.
Getting this in master first sounds good. I already have a working v4
on top of this, which is of course much faster for the --contains
combined with --no-contains case. Gotta run now, but will clean up
that patch & submit it to the list soon.
> [1/4]: ref-filter: move ref_cbdata definition into ref-filter.c
> [2/4]: ref-filter: use contains_result enum consistently
> [3/4]: ref-filter: die on parse_commit errors
> [4/4]: ref-filter: use separate cache for contains_tag_algo
> ref-filter.c | 70 ++++++++++++++++++++++++++++++++++++++----------------------
> ref-filter.h | 5 -----
> 2 files changed, 44 insertions(+), 31 deletions(-)