Re: [PATCH] Introduce light weight commit annotations
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:15
Hi, On Sun, 10 Jun 2007, Junio C Hamano wrote:
Johannes Schindelin [off-list ref] writes:quoted
I do not understand... the entries of a tree object are sorted alphabetically, right? Including the convention that if one is a prefix of another, it is "smaller". While I think that the length would not be any problem, the entries' names of refs/annotations/commit^{tree} are _all_ of length two, and point to other tree objects. _Those_ tree objects contain _only_ entries whose names contain exactly 38 characters.That is ONLY true if you are introducing a specialized tree object parser that knows it is dealing with the tree used in your annotation scheme that has entries of uniform size. In such a tree parser, you could bisect or Newton-Raphson a tree object data to find an entry more efficiently than for normal trees with enries of variable size.
Ouch. That is a real flaw in my proposal. It completely destroys my "I think this will scale just fine" argument.
If that happens, "refs/annotations/commit:?{40}" format would let you
look up an annotation for a given commit much more efficiently than
"refs/annotations/commit:??/?{38}", because it would have to open only
one tree object, instead of two.Let me think that one through. At the moment I cannot think of an easy fix. Ciao, Dscho