Subject: Re: [PATCH 00/13] refs: improvements and fixes for peeling tags

From: Junio C Hamano <[email-masked]>
Date: Tue, 07 Oct 2025 16:01:34 -0700

Patrick Steinhardt <[email-masked]> writes:

> Hi,
>
> originally, all I wanted to do was the last patch: a small performance
> optimization that stops parsing objects in git-for-each-ref(1) unless we
> really need to parse them. But that fix cause one specific test to fail,
> and only with the reftable backend. So this led me down the rabbit hole
> of tag peeling, ending up with this patch series.
>
> The series is structured like follows:
>
>   - Patches 1 to 7 refactor our codebase so that we don't have the
>     `peel_iterated_object()` hack anymore. I just found it hard to
>     follow and thought it shouldn't be too hard to get rid of it.

I've only read up to here, and found all of them welcome
improvements.  Will continue reading later.

>   - Patches 8 and 9 remove infrastructure that we don't need anymore
>     after the first couple of patches.
>   - Patches 10 to 12 fix a couple of issues with peeled tags that I
>     found. The underlying issue is that tags store both the tagged
>     object and their type, but this information may not match. We never
>     verify the actual object type though when allocating the tagged
>     object, so this only blows up much later.
>
>   - Patch 13 was my original motivation, a small performance
>     optimization.