henry@utzoo.UUCP (Henry Spencer) (07/30/84)
The only version-numbering file system I've ever heard of that actually sounded good was the one CMU designed for their Spice project. (Don't know if it was/is implemented the way the tech report described it, but that's another story.) They took the view that (by default) once you created a file, it was immutable -- any attempt to change it resulted in creation of a new file, i.e. a new version number. This was automatic and inescapable, and applied to *all* attempts to change the file -- there was no way to alter an existing version at all. The idea was that old versions would be migrated, automatically and fairly quickly, out to laser disk or some similar bulk-storage medium, cheap enough and big enough that you could afford to save everything forever. -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry
Laws@SRI-AI.ARPA (08/03/84)
From: Ken Laws <Laws@SRI-AI.ARPA> The EUNICE operating system offers multiple file versions as a user-selectable option. I prefer the Unix single-version style, but everyone else at my site uses multiple versions. (There have been some minor difficulties in my trying to maintain single versions on a system where a directory may have multiple file versions when I cd to it, but EUNICE handles the split approach to file management rather well.) I use both Tenex and Unix almost every day, and I prefer the Unix style. I've never seen the advantage of having five files with the same name, or of having my directories fill up with garbage files. Multiple versions play havoc with any automatic archiving system because version 1 on tape needn't match version 1 in your directory; worse, you may end up with several different versions 1's archived. Implementing cp and mv in a multiversion environment is also tricky, and EUNICE hasn't always done it right -- I'm not sure whether the current version keeps sticky version numbers, properly collates file foo >>after<< files foo.1, foo.2, etc.; and handles conflicts when you try to copy foo (actually foo.#) into a directory containing a file foo with a different version number. When I need old copies of files, I prefer to save them explicitly with names like foo.old or foo.bug. When I need automatic saving of files to be edited I obtain them via a shell script wrapped around my edit command -- that gives me the flexibility of saving the copies in /tmp instead of in my own directory. Soft deletion can also be achieved by using a shell script around rm that copies deleted files to /tmp. Multiple versions are just one more complication for anyone trying to write software that parses file names for any reason, and I for one don't need the hassle. -- Ken Laws -------