From: firstname.lastname@example.org To: email@example.com Message-ID: <8525671A.006AAF59.firstname.lastname@example.org> Date: Tue, 16 Feb 1999 14:16:24 -0500 Subject: Version issues A few issues came up at our last versioning working group meeting: 1. DAV versioning level 1 will still need to be a way of resolving access to versioned resources given just a URL (and not a label). If workspaces aren't supported, level 1 servers will have to provide some other way to resolve URLs to specific revisions, perhaps a default revision for each versioned resource. For level 2 servers that do support workspaces, this would result in two, potentially conflicting ways of performing URL mapping. This is a strong argument for including workspaces in level 1. What would anyone want to do with versioning level 1 that workspaces wouldn't support? What would workspaces include that would be considered too much for level 1? If there are no compelling answers to these questions, we should include workspaces in level 1, including the default workspace. 2. Deleting a resource must explicitly state that the resource is removed from its parent collection; that is, the collection with which the resource is an internal member. Versioning complicates delete semantics. There are three things we might want to delete: an unversioned or working resource, a revision (and all its descendents?) of a versioned resource, a versioned resource and all its revision history. This must be done in the context of versioned and unversioned collections that contain the resource, or versioned resource as an internal member. The preferred way to do this would be to have add and remove methods on collections to create and delete resources as its the collection that controls the namespace. Unfortunately, DAV doesn't have those semantics, so we will have to find a work-around for versioning. Actually, the current WebDAV spec is a little confusing about collections and their members. The current spec indicates collections contain URLs, not resources. But, there is the notion of internal members and referential members, and deleting a collection deletes all its internal members. So the collection behaves like it contains resources, not URLs. This issue will likely get more confusing when we add versioned resources, versioned collections, and multiple revisions. 3. It is not possible to automatically create workspaces or activities for either non-versioning clients, or versioning clients that don't specify them. Default workspaces and/or activities must be used. Creating a new workspace or activity on each request could cause resources that were manipulated in the previous request to disappear.