From: Junio C Hamano Date: Thu, 27 Aug 2009 20:58:00 GMT Subject: Re: [PATCHv4 08/12] Teach the notes lookup code to parse notes trees with various fanout schemes Message-ID: <7vprahq8iv.fsf@alter.siamese.dyndns.org> In-Reply-To: Johannes Schindelin writes: > I half-agree, the code should decide which fanout scheme to use, but > _only_ when producing new notes. > > I imagine that it could merge the existing notes, and try to make sure > that there are no more blobs in a given subtree than a certain threshold; > if that threshold is reached, it could fan-out using 2-digit subtrees, > merging what needs merging (by concatenation) along the way. > > The natural precedence of shallower paths/longer basenames should cope > well with that (i.e. prefer to show abcd/... over ab/cd/...). Oh, if the plan for merging the trees is such that it takes care of "multiple notes pointing at the same commit" issues like you outline, then I can see it would work nicely. At that point, fan-out would become merely an implementation detail, something the end user never needs to worry about, just like what base object is chosen to represent another object in a packfile.