pathnames

Alaric B. Williams alaric@abwillms.demon.co.uk
Tue, 13 May 1997 18:34:25 +0000


> >Probably easier to make a copy of the chapter, destructively modify
> >the original to contain the new data, and then have a link to the
> >previous version. Otherwise you're restricted to accessing the current
> >version of the book via some kind of registry or other.
> 
> That's not necessarily what you want. You might have other documents
> which have a link to your document that don't want to assume the
> latest version. They are interested in version 1.4.7, which they have
> a reference to.
> 
> If you want the latest version you should have to ask the
> registry. (Please-give-me-a-reference-to-the-latest-version-of
> "Treasure Island"). The latest version is an abstract notion, and
> it is not appropriate to use a direct reference.
> 
> Destructive anything, is in general a bad idea.

Right!

My riginal idea for a version system, which started this little threadlet,
to save everyone from trawling back through the archives - was that
a single thing representing all version of the same object was used
to identify it, unlike the UNIX approach, where many seperate files 
are used to track the same object through it's lifespan.

Eg, we have "/Public/Hello!", which on it's own by default
refers to the most recent version.

OTOH, since "/Public/Hello!" really refers to all the versions,
which are uniquely and nondestructively numbered from 1 upwards,
so I can ask for them individually. Going back to my favourite
syntax, we'd have:

(define my-book (make-path *internet* "abwillms.demon.co.uk" 'Public 'Book))

(let
     (book (open my-book :version 5))
     ...
)

Whereas without the optional version argument, it returns the newest.
A version given as a symbol, "newest", would also have this effect.


ABW
--
Alaric B. Williams (alaric@abwillms.demon.co.uk)

   ---<## OpenDOS FAQ ##>---

Plain HTML: http://www.delorie.com/opendos/faq/
            http://www.deltasoft.com/faq.html

Fancy HTML: http://www.deltasoft.com/faq0000.html