Greg Hudson <ghudson@MIT.EDU> writes:
> I've thought about how to do a direct mapping to the filesystem, and
> I came up with a fairly simply idea: if REPOS is the path to the
> repository, then REPOS/1 is the first revision, REPOS/2 is the
> second revision, and so on. Inside a revision, you can have a relative
> symlink back to a previous revision for an unchanged file or
> directory. Files can contain raw contents or diffs against some
> other path. When you're doing a commit, you build up a new rev in
> REPOS/some-id-string, and when you're ready to finalize the commit
> you merge it with any commits which have been made in the meantime
> and then rename it to REPOS/3 or whatever the next number is.
You know, when I first encountered Subversion and read about the
design, about single version trees and cheap copies, and the XML
tree-delta stuff in particular, I though "Oh, they're using hardlinks.
Whenever a new version is created, new inodes are created from the
changes and up, and everything else is just hardlinked to the old
revision. Very clever."
When I found out that this was actually not the case, but an ugly db
was used instead, I was mildly shocked. :-)
If anyone want to build a new backend along these lines, I don't mind
giving a hand...
// Marcus
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:00 2006