Date: Thu, 26 Apr 2001 16:48:56 -0700 From: Bakul Shah <bakul@bitblocks.com> To: Terry Lambert <tlambert@primenet.com> Cc: fs@FreeBSD.ORG, bakul@FreeBSD.ORG Subject: Re: versioned files via snapshot evilness. Message-ID: <200104262348.TAA10209@sheffield.cnchost.com> In-Reply-To: Your message of "Thu, 26 Apr 2001 22:57:59 -0000." <200104262258.PAA09326@usr06.primenet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > > Versioning ala VMS requires kernel globbing, or amazingly
> > > intrusive library modifications, coupled with a guarantee
> > > by programmers that they will only use the preferred APIs
> > > in their applications.
> >
> > Well... you can do this by treating each file as a directory,
>
> This is the folded namespace approach. In the user's "view"
> onto the filesystem, they would see only the "file" name, and
> when they reference the file, they get the most recent version in the directory.
Likely my example was not clear. The user gets both views:
as a file and a dir, depending on the open mode. For
example, as a file when you do open("foo",...) and as a dir
when you do open("foo/", ...). Either a trailing slash or
with an open mode or something to select between the two.
If you want the latest HEAD version you open "foo". If you
want a specific version 1.2, you open "foo/1/2". Should
there be further branching 1.2.{1,2,..n}, opening "foo/1/2"
will automatically give you the latest sub version. So this
scheme extends very nicely to a tree of versions as opposed
to the '; <version>' scheme which is flat.
> You still need a seperate handler for the namespace escape to do
> the version redirection of the name, or to select the most recent
> version, if no escape is present. This still leaves you hanging
> out to try over listing all version of the file from the user's
> point of view, as VMS did, without a ";<version>" namespace
> intrusion (as opposed to an escape).
What is wrong with `ls -R foo' if you want to list every
created version and `ls foo/1/2/*' if you want to list all
the same level sub versions of 1.2?
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200104262348.TAA10209>
