Subject: Re: What's cooking in git.git (Oct 2025, #12; Thu, 30)

From: Patrick Steinhardt <[email-masked]>
Date: Tue, 4 Nov 2025 13:40:15 +0100

On Mon, Nov 03, 2025 at 04:30:59PM -0500, Jeff King wrote:
> On Mon, Nov 03, 2025 at 12:10:47PM -0800, Junio C Hamano wrote:
> 
> > Junio C Hamano <[email-masked]> writes:
> > 
> > > Bisect points at 054f5f45 (ref-filter: parse objects on demand,
> > > 2025-10-23), which is unfortunate, as that is the motivating step of
> > > the whole topic.
> > 
> > Here is a fairly simple reproduction.  It appears that this does not
> > require the refs to be packed (i.e., "t7004-tag.sh -i -v" fails
> > after saying "*** Loose ***" here, without moving to the packed
> > test).

Oof.

> I think the issue is that nobody ever resets data->maybe_object. So it
> is left cached with the very first object that gets looked up.
> 
> Something like this seems to fix it, but there may be a better place to
> do the reset.

Yeah, I think this makes sense. I'd attribute the root cause here to the
fact that both `oi` and `oi_peeled` are global variables. I didn't
realize that and thought it would be populated for every reference
individually, but that's obviously not the case.

Only thing I'd change is to instead call `get_object()`, which is the
entry point for `grab_values()`.

Will send a patch in a bit, thanks both!

Patrick