9fans archive / 2001 / 11 / 761 /    prev next

From: geoff@col...
Subject: Re: [9fans] Python filesystem
Date: Thu, 29 Nov 2001 16:11:31 -0800

An afterthought on Tenex-style version numbers: I don't believe any
implementations of file version numbers permit directories to have
versions, only plain files.  If directories had versions, and they
were kept around for a lot longer than a day, these systems would be
more usable (except for the added clutter of the directory versions)
and you probably wouldn't want nor need version numbers on plain
files.

Further, if the directory version number were incremented (and a new
directory created) only upon user request (ick), these systems would
be closer to the file server dumps:

	cd '.;3'
or
	cd '/sys/src/cmd;57'

though still rather nasty.  These systems cut the interaction of time
and the file system namespace one way, putting the
not-terribly-meaningful version information at the end using odd
syntax, which results in clutter between PURGEs and possibly after.
The file server dumps cut another way, with time-based version
information at the start, using uniform syntax, and gathering related
versions of files together (which minimises clutter), rather than
gathering related names (file;*) in a cluttered directory.

Imagine trying to go back and gather up related source files using
file version numbers as they currently stand.  You are in a cluttered
directory of files and versions.  You can't see far.  You get to pick
up files, examine them, put them down or in your backpack, and wander
around, looking at dates or diffing adjacent versions, trying to
figure out which files and versions form a consistent set, and keeping
a list as you go.  Let's see: it's fs.h;203, main.c;173, cfs.c;159,
9p.c;2, mkfile;17.  Bletch.

I just don't see the attraction.  You get ugly file names with odd
syntax, no convenient way to back up to a given time, and your
directories are always full of trash.  Such a deal.  Is there
*anything* that people find attractive about file version numbers?

I understand that people are proposing active file servers based on
Tenex-style version numbers, but I would propose to start from a solid
foundation rather than the shakey house of cards that is file version
numbers.