[PATCH 0/2] peel-ref optimization fixes
- From
Jeff King <peff@peff.net>
- Date
- Mar 16, 2013, 09:00 UTC
- Message-ID
- <20130316090018.GA26708@sigill.intra.peff.net>
These patches fix the issue with peel-ref noticed recently by Michael (namely that we fail to correctly peel packed refs outside of refs/tags). The problem has been there since we added peeling support to pack-refs, but traditionally "show-ref -d" was the only caller that actually triggered the issue. Between that and the fact that most people only put annotated tags into refs/tags, nobody really noticed.
Since my 435c833 (upload-pack: use peel_ref for ref advertisements, 2012-10-04), which is in v1.8.1, upload-pack can trigger the problem, too, but I haven't actually heard of any reports in the wild.
I split it into two patches; the first one is the minimal fix that makes git work properly going forward. The second one helps git be more robust when reading packed-refs files generated by older git (or other implementations). The second one depends semantically but not textually on the first one; if you're worried about that, they can be squashed.
[1/2]: pack-refs: write peeled entry for non-tags [2/2]: pack-refs: add fully-peeled trait
I think Michael may be rewriting some of this code, but if we are going to go this direction with the fix (and I think we should), this is the change that should go to maint in the meantime.
-Peff