Subject: Re: [PATCH] commit-reach: do not parse and iterate minima

From: Derrick Stolee <[email-masked]>
Date: Fri, 25 Mar 2022 10:32:48 -0400

On 3/24/2022 6:06 PM, Taylor Blau wrote:
> This made me think of some of the difficulties we encountered back in
> ce16364e89 (commit.c: don't persist substituted parents when
> unshallowing, 2020-07-08), particularly:
> 
>     One way to fix this would be to reset the parsed object pool entirely
>     (flushing the cache and thus preventing subsequent reads from modifying
>     their parents) after unshallowing. That would produce a problem when
>     callers have a now-stale reference to the old pool, and so this patch
>     implements a different approach.
> 
> if I can recall back to when that patch was written, I think the issue
> was that dumping the entire set of parsed objects caused us to have
> stale references in the commit-graph machinery.
> 
> I'm not sure whether or not the same difficulties would be encountered
> here, though. The shallow stuff is so tricky to me...

The commit-graph is disabled in the presence of grafts, so this
_should_ be fine. I guess there are some issues if you are
transitioning not having grafts to having grafts (or vice-versa)
so that might be worth investigating.

Thanks,
-Stolee