Thanks for your thoughts. One comment: Branko Čibej wrote on Sun, Feb 12, 2012 at 21:52:16 +0100: > The idea is that we'd always maintain the complete index, i.e., in order > to determine if path@15 exists, one only needs to search the index for > (path, rev <= 15, !deleted) -- which is trivial in a properly ordered > index. (Yes, this assumes that we record deletions in the index as well > as insertions.) > > All of this can be done with an append-only index representation. What > you can't do with append-only is represent forward history links, but -- > we're not representing them very well right now, are we. :)
Within the append-only constraint one can implement forward links if one has, say, a separate file per revision. (So asking "where was foo@15 copied to" involves a linear scan of $REPOS/db/forward-links/15.) stsp and I even started on such a design on some branch somewhere --- but that branch has been abandoned as the motivation for it was rename tracking, which stsp figured he could solve better without the new FS feature.