On Tue, Jun 22, 2021 at 10:46:40PM -0400, Taylor Blau wrote: > On Tue, Jun 22, 2021 at 12:08:40PM -0400, Jeff King wrote: > > If the packed-refs file ever learns to store all of the peeled layers, > > then we could switch to it. Or even if it stored a flag to indicate the > > peel was not multi-layer (because most of them aren't), then we could > > use it most of the time and fall back to a manual peel for the rare > > cases. > > Yeah, I would be in favor of either of these. Of the two, the latter > seems like the simplest thing, but the former provides you all of the > information you could hope for. > > I suppose that if you are already changing the format of packed-refs, > then we might as well do the thing which provides the most information > and allows us to optimize *all* cases, not just the vast majority of > them. One reason not to include all of them is that the list can be arbitrarily long, and regular readers of packed-refs (who may not even care about peeling at all) have to skip past it. That matters a little less these since we binary-search it (but you still might be iterating over the ref). So I think either way it is a tradeoff, and you are making assumptions about which cases are less likely. If I were to work on this (and I don't have any immediate plans to do so), I'd probably do whichever is easiest to implement, and to maintain backwards-compatibility. And I suspect that is the "flag" approach, but a lot would depend on the details of our parser and what it permits. -Peff