Hi,
Shawn triggered some well needed thinking on my part about the notes
implementation. At the moment, we have flat directory structure, and read
all of them in one go (when needed).
I think we should support that, because it is relatively easy to generate
that kind of trees for small-scale applications.
However, I think there is also a benefit to handle fan-out directory
structures, too: they scale much nicer.
If the commit name was not found as a filename, it could be searched in
whatever subdirectory whose name is a prefix of said commit name (first
wins).
So I think it would be a sane plan to do the following when a commit note
is requested:
- If not done yet, read in the whole top-level directory of the notes ref.
- If the commit name is not found, find the tree entries whose name is a
prefix of the commit name (we can even use the same hashmap to store
these "incomplete" names, as we use a linear hash, which we fill in
ascending order),
- read the trees one by one, until the commit name is found (or no tree
entry is left), deleting the trees from the hashmap on the go.
How does that sound?
Ciao,
Dscho
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html