versioning lock

Geoffrey M. Clemm (geoffrey.clemm@rational.com)
Mon, 6 Dec 1999 21:34:32 -0500


Date: Mon, 6 Dec 1999 21:34:32 -0500
Message-Id: <9912070234.AA00952@tantalum>
From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>
To: ietf-dav-versioning@w3.org
Subject: versioning lock


One of the challenges of versioning is how to support the URL protection
specified for WebDAV locks.  A LOCK "protects" a URL by ensuring that when
a LOCK is applied to a URL that identifies a specific resource, only
a holder of the lock token can cause the locked resource to no longer be
identified by that URL.

The reason that this is a challenge for versioning is that the resource
identified by a versioned resource is determined by applying the
revision-selection rule of a workspace to the versioning metadata
(e.g. labels) associated with that versioned resource.  Currently, 
to ensure that LOCK protection is not violated, any attempt to update
the metadata of a versioned resource would first have to compute the
effect of that update on all workspaces that have a lock on that resource.
This is in general impossible, since workspaces may exist on other servers
that are temporarily inaccessible.

To solve this problem, I propose that we introduce the concept of a
"versioning lock" ("revision selection lock" ?).  When a versioning
lock is applied to a URL in a given workspace, all resources
identified by all segments of that URL (each prefix segment of the URL
can identify a versioned collection) are version locked, which means
that the revision currently selected by the workspace for that
versioned resource is computed and fixed.  While the lock is in place,
a new revision is selected for that versioned resource in that workspace
only by a CHECKIN operation, and not by a recomputation of the 
revision selection rule.

Furthermore, any lock that provides URL protection (such as the
currently defined write locks) will always apply a version lock
to that URL as well.

If there are no objections to this, I will versioning locks to the
next draft of the DELTAV protocol specification.

Cheers,
Geoff