Next message: Geoffrey M. Clemm: "new working draft (04.8) of versioning protocol available"
Message-ID: <65B141FB11CCD211825700A0C9D609BC03105D5A@chef.lex.rational.com>
From: "Clemm, Geoff" <gclemm@Rational.Com>
To: "DeltaV (E-mail)" <ietf-dav-versioning@w3.org>
Date: Mon, 12 Jun 2000 12:24:28 -0400
Subject: Versioning TeleConf Agenda, 6/12/00 (Monday) 2pm-3pm EST
phone: 888 819 8909 pass-code#97985
Agenda:
Are the following semantics correct/sufficient for how existing
WebDAV methods act upon core versioning resource types?
5 VERSIONING AND EXISTING METHODS
For any request that supports a Target-Selector header, if the request-URL
identifies a versioned resource, the request MUST act as if the state of the
versioned resource was a copy of the revision selected by the
Target-Selector header.
For any method that updates a resource (e.g. PUT, PROPPATCH), when that
method is applied to a versioned resource, the method MUST fail unless the
versioned resource has a DAV:auto-version property. If the versioned
resource has a DAV:auto-version property, the versioned resource is checked
out, the update is applied to the resulting working resource, and the
working resource is checked in. This functionality allows a versioning
unaware client to add a revision to the history of a versioned resource. If
any part of the checkout-update-checkin sequence fails, the server state
preceding the request MUST be restored.
5.1 New Status Codes
4xx (No Revision Selected): The label specified in a Target-Selector header
selects no revision of this versioned resource.
4xx (Cannot modify contents or property of a revision)
5.2 OPTIONS
When a resource supports core versioning, the DAV response header for an
OPTIONS request MUST contain "core-versioning".
5.2.1 Example - OPTIONS
>>REQUEST
OPTIONS /foo.html HTTP/1.1
Host: www.webdav.org
>>RESPONSE
HTTP/1.1 200 OK
DAV: 1, 2, core-versioning
Allow: OPTIONS, GET, PUT, PROPFIND, PROPPATCH, VERSION
5.3 PUT
Additional Preconditions:
If the request URL identifies a versioned resource, the PUT MUST fail unless
DAV:auto-version is set for that versioned resource.
If the request URL identifies a revision, the PUT MUST fail.
5.4 PROPPATCH
Additional Preconditions:
If the request URL identifies a versioned resource, an attempt to modify a
dead property MUST fail unless DAV:auto-version is set for that versioned
resource.
If the request-URL identifies a revision, the PROPPATCH MUST fail.
An attempt to modify a property (either core or advanced) defined by this
document as being protected MUST fail.
An attempt to modify a property (either core or advanced) whose semantics
defined by this document are not enforced by the server MUST fail. This
helps ensure that a client will be notified when it is trying to use a
property whose semantics are not supported by the server.
5.5 DELETE
Additional Preconditions:
If the request-URL is a revision URL, the result is undefined.
5.6 COPY
Additional Postconditions:
The protected properties specified in this document are not copied, and MUST
not exist on the new resource created by the copy. A COPY request therefore
never creates a revision, a working resource, or a versioned resource at the
Destination URL.
5.7 MOVE
Additional Preconditions:
If the request-URL is a revision URL, the request MUST fail.
5.8 LOCK
Additional Preconditions:
A LOCK request MUST NOT include a Target-Selector request header.