- From: <Bradley_Sergeant@intersolv.com>
- Date: Sat, 8 Aug 1998 14:28:33 -0400
- To: <francis@netscape.com>, "Bruce Cragun" <BCragun.ORM2-1.OREM2@gw.novell.com>
- Cc: <w3c-dist-auth@w3.org>
I think it would help the discussion to distinguish between two
different concepts: revisions and versions. I won't pretend formal
definitions, just brief characteristics and examples distinguishing
the two. While my comments may indicate a specific implementation,
please take these as examples...
* Revisions are automatically generated and assigned names such as
1.3, 1.2.1.4, etc. when a versioned item is modified, say by a CHECKIN
operation.
* Revisions are immutable, both their name and their data, but they
may have mutable metadata, such as labels or comment fields.
* A sequence of revisions represent changes over time of a single
versioned item.
* A version on the other hand is determined by a human and named by a
human. A CHECKIN operation only changes the version if the human
specifies it so via a parameter, etc..
* Versions can be mutable, or immutable. Normally, versions are
mutable for a time, and then frozen. But frozen versions can be
thawed to make modifications if needed.
* Version labels are used to access items with an application-specific
semantic intention, e.g.. "Latest version of Release 5", or "Currently
Shipping Version", etc.
* A revision name provides no application-specific semantic value.
There is no conflict here, revisions and versions are both needed to
support configuration management (for example). Versions can be (and
have been) implemented using floating and fixed labels on top of
revisions. Other models can also be used.
So the question I hear Bruce asking is "Can WebDAV allow implementors
to support Versions, but make Revisions optional"?
I think the answer is yes. However, I also believe that WebDAV needs
to model both Versions and Revisions explicitly in order to pull this
off. A client needs to be able to find out if the server supports
revisioning and how that revisioning will behave during a CHECKIN, for
example.
I agree with many previous comments that Revision support (of some
sort) is an absolute requirement for doing configuration management.
Versioning alone is often not sufficient, even for legal reasons.
However, a pure versioning system does have collaborative value,
especially when combined with locking.
--Sarge
______________________________ Reply Separator _________________________________
Subject: Re: Baby steps
Author: "Bruce Cragun" <BCragun.ORM2-1.OREM2@gw.novell.com> at SMTPPOST
Date: 8/7/98 11:34 AM
I'm not saying there aren't valid reasons for forcing new versions, just that
this should be up to the server and not the spec. I know we aren't the only
document management system that doesn't force it, and having the spec require
this would break the model of any DMS out there that currently leaves it to the
user.
As we've asked many, many customers about this, only about 20% want forced
automatic versioning. Another 50% or so would like the *option*. In many
cases, administrators are very much against the automatic versioning because of
the disk space required to maintain such a system (unless you only save diffs,
which isn't the case with us).
So let me propose this, and anyone can tell me why this won't work: The spec
should leave it up to the server to force or not force. There would be a method
of discovery for clients to determine what the server's rule is.
>>> John Stracke <francis@netscape.com> 08/07 11:27 AM >>>
Bruce Cragun wrote:
> There are two scenarios. First, which I believe is VERY common, is to allow
me to edit a leaf node and have the changes go back into that same version.
Mmm, yeah. Personally, though, I'd say that this approach is suboptimal in many
cases--for example, if multiple users have access to that leaf node, then you
run the risk of lost updates, and you can't tell who made every change. I'd
prefer to see stuff like this done via a scratch area.
> The second scenario is to allow me to edit a non-leaf node and save those
changes back into that node.
EvilNastyIcky!
One major advantage of versioning is that it lets you do audits. If you're
versioning your source code, and somebody complains that it breaks only when
they've got their username set to "John Smith", you can go back in the code and
find out that Joe Blow put in a poison easter egg because he hated somebody
named John Smith. If you're versioning your Web site, and somebody accuses you
of having put child porn on it, you can check back at every version that's ever
existed and prove that you didn't. These capabilities break down if you can
edit non-leaf nodes. I take your point about not restricting the servers too
much; but this sort of functionality is so vital that I would prefer to make
sure the protocol can't be asked to break it.
> Right now I would have versions for all previous years, 1998, and the new one
for the upcoming year 1999. If a mistake is found in our 1998 handbook, I would
like to fix it in-place.
That's what branching is for.
--
/====================================================================\
|John (Francis) Stracke |My opinions are my own.|S/MIME supported |
|Software Retrophrenologist|=========================================|
|Netscape Comm. Corp. | Veni, Vidi, Ridi: |
|francis@netscape.com | I came, I saw, I mocked. |
\====================================================================/
New area code for work number: 650
Received on Saturday, 8 August 1998 17:49:36 UTC