Re: [PATCH 0/4] fix object flag pollution in "tag --contains"
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Mar 11, 2017, 13:06 UTC
- Message-ID
- <CACBZZX5rgomtp3E6JkZdyJPY_iw=j+Sg3-nYw-05jW0raRvK0w@mail.gmail.com>
- In-Reply-To
- <20170309132728.c57ltzel746l366a@sigill.intra.peff.net>
On Thu, Mar 9, 2017 at 2:27 PM, Jeff King <peff@peff.net> wrote:
Show 5 quoted lines
> 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@gmail.com> 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
Show 5 quoted lines
> 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.
Show 10 quoted lines
> [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