On 13.02.2012 17:09, Daniel Shahaf wrote: > 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.
A separate file per revision has other problems, too. You'd quickly run out of inodes on ext-derived file systems, for example. -- Brane