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.