- From: Yaron Goland <yarong@microsoft.com>
- Date: Wed, 26 Mar 1997 00:10:05 -0800
- To: DAV Discussion <davdisc@microsoft.com>
1. DAV:STRUCTURE:*:VERSIONED Content Nature 1.1 Problem Definition A mechanism is needed to inform the server that the client wishes to create a structured versioned resource. 1.2 Proposal The DAV:STRUCTURE:ITEM:VERSIONED content nature on a PUT informs the server that the client wishes to create an item that will be versioned. If the PUT has an entity then that entity is the first version of the resource. The DAV:STRUCTURE:CONTAINER:VERSIONED content nature on a PUT informs the server that the client wishes to create a structured versioned container. If the PUT has an entity then that entity describes the contents of the structure of the first version of the container. In both cases the server MUST create a versioned resource of the specified type or must return a 501 "Not Implemented" 1.3 Example A user wishes to create a versioned container and includes in the PUT a mime multipart containing the first entries for the container. PUT http://foo HTTP/1.1 Content-Nature: DAV:STRUCTURE:CONTAINER:VERSIONED Content-Type: mime/multipart <Request Body> 2. DAV.Versioning.NextVersion Link 2.1 Problem Definition Clients need to be able to follow version links in order to determine parentage of resources. This is especially critical in distributed versioning systems where complete histories may not exist. However, it is always useful to allow servers to build complete histories when possible. As such, it must be possible to include merge information when creating a versioning link. Finally, resource may have multiple children. In such a case it would be useful to have the version-id's of those children. 2.2 Proposal I propose maintaining the DAV.Versioning.NextVersion link type from the original specification. I further propose adding the following link extensions for use when LINKing a DAV.Versioning.NextVersion link. MergeData = *(";" MergeURI [[MergeWeak] MergeEtag]) MergeURI = "MergeURI" "=" URI MergeWeak = "MergeEtagStrength" "=" weak MergeEtag = "MergeEtag" "=" opaque-tag I have included the MergeEtagStrength on the off chance that someday there will be a modifier other than weak. I also propose that the following attribute be available when setting or receiving information on the link. VersionID = *(";" "Version-Id" "=" VID)
Received on Wednesday, 26 March 1997 03:17:02 UTC