On 10/6/06, Erik Trimble <[EMAIL PROTECTED]> wrote:
First of all, let's agree that this discussion of File Versioning makes no more reference to its usage as Version Control. That is, we aren't going to talk about it being useful for source code, other than in the context where a source code file is a document, like any other text document. File Versioning and Version Control are separate things, with different purposes and feature sets.
Hmm; the most important uses of file versioning come, in my opinion, when working on source code. But for handling very different situations than source control does.
OK. So, now we're on to FV. As Nico pointed out, FV is going to need a new API. Using the VMS convention of simply creating file names with a version string afterwards is unacceptible, as it creates enormous directory pollution, not to mention user confusion. So, FV has to be invisible to non-aware programs.
Strongly disagree, twice. Having FV invisible to programs not updated to specially support it is IMHO unacceptable, and would render the feature useless. I remember it being a bit inconvenient on VMS. It wasn't on TOPS-20. I'll have to look into what the TOPS-20 conventions were again (I used TOPS-20 from 1977 to 1985, but hardly touched it since), but I found them very friendly and easy to work with, not confusing, etc. They weren't *that* different from the VMS approach, but this is probably one of those situations where tiny tweaks to user interface make a huge difference to user experience.
Also, FV is only useful for apps which do a "close()" on a file (or at least, I'm assuming we wait for a file to signal that it is closed before taking a version - otherwise, we do what? take a version every X minutes while the file still open? I shudder to think about the implementation of this, and its implications...). How many apps keep a file open for a long period of time? FV isn't useful to them, only an "unlimited undo" functionality INSIDE the app.
It's the rewrite scenario; when we open or rename a file on top of an existing file, the new file gets an incremented version number, and the old file stays around.
Lastly, consider the additional storage requirement of FV, and exactly how much utility you gain for sacrificing disk space.
It was something we could afford, and did afford, on TOPS-20 systems where having three RP06 disk pack systems (at 200MB each) was considered rather a lot of storage. Today it's a complete non-issue. Disk space is free.
To me, FV is/was very useful in TOPS-20 and VMS, where you were looking at a system DESIGNED with the idea in mind, already have a user base trained to use and expect it, and virtually all usage was local (i.e. no network filesharing). None of this is true in the UNIX/POSIX world.
When TOPS-20 was introduced, essentially nobody was used to file versioning. When VMS was introduced, very few people were used to file versioning (and the TOPS-20 community mostly moved to Unix rather than VMS). TOPS-20 wasn't the first system I used (it was the fifth, Ithink), or even the first timesharing system (the third, I believe). File versioning was one of those "instant love" features; it was instantly obvious how it worked, how to use it, and how beneficial it was. I see network file access as a non-issue; the version gets treated as part of the file name, just as it did on all the previous systems that supported file versioning. I'm *still* not really sure it's actually worth the trouble of adding, if 5-second snapshots are really feasible. They're less convenient to use by quite a bit, but the important use cases arise relatively rarely, and the value is high when they arise, so that's not *too* big an issue. And more code complexity and more user confusion (I don't think versioning is terribly comlex to understand, but certainly snapshots plus versioning is more complex than snapshots alone). But if people are going to decide against file versioning, I'd prefer it to be based on a more accurate understanding of how it plays to users :-). -- David Dyer-Bennet, <mailto:[EMAIL PROTECTED]>, <http://www.dd-b.net/dd-b/> RKBA: <http://www.dd-b.net/carry/> Pics: <http://www.dd-b.net/dd-b/SnapshotAlbum/> Dragaera/Steven Brust: <http://dragaera.info/> _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss