Re: [PATCH 00/13] refs: improvements and fixes for peeling tags
From: Junio C Hamano <hidden>
Date: 2025-10-07 23:01:37
Patrick Steinhardt [off-list ref] 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.