Web lists-archives.com

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
this.

> 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(-)
>
> -Peff