Date: Fri, 7 Jan 2000 10:31:24 -0500 Message-Id: <10001071531.AA19582@tantalum> From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com> To: ietf-dav-versioning@w3.org Subject: Re: Comments on versioning protocol From: "Vasta, John" <jvasta@rational.com> since only unversioned collections can contain unversioned resources, then all parent collections of any unversioned resource must be unversioned. Yes. So how do you version an unversioned resource? Apply a CHECKOUT request to it. If you version the parent collection first, then you have a versioned collection containing unversioned resources. But you cannot version the children first, since they are in an unversioned collection. You can have versioned resoures in unversioned collections (just apply a CHECKOUT request to it). When you initially create a resource with PUT, MKCOL, etc. in an unversioned collection, it is unversioned, but then when you apply a CHECKOUT to it, it becomes versioned. One way around this would be to say that versioning an unversioned collection is always treated as an infinite depth operation. Is that what was intended? I'd rather have the client iterate through the tree, so that it can query the user on problems/issues (locked resource, unversionable resources), rather than having the server try to guess what to do and whether to continue or not. > 5.1 Shouldn't a precondition of MKRESOURCE for > versioned-resources be that > the parent collection is checked out? > > I'm tempted at the moment to just say that CHECKOUT is > *always* used to > created versioned resources (and not MKRESOURCE). Does anyone object? It seems strange to me to have a general MKRESOURCE method that cannot be applied to versioned resources, and that you can CHECKOUT a null resource. Why not just apply the same versioned-resource-creation semantics to MKRESOURCE as to any other resource creation method? A versioned resource has two types: DAV:versioned-resourcetype and the resource type of its revisions. In many cases, a server can't create a versioned resource until it knows the resource type of its revisions. We could add some special arguments to the MKRESOURCE body to indicate the revision-resourcetype, but it is simpler to just say that you always use CHECKOUT to put something under version control. Cheers, Geoff