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