Date: Tue, 30 May 2000 22:17:26 -0400 (EDT) Message-Id: <200005310217.WAA24488@tantalum.atria.com> From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com> To: ietf-dav-versioning@w3.org Subject: Re: workspaces as collections From: jamsden@us.ibm.com We don't want users to have to use server generated URLs. I'd expand that to say "We don't want users to have to use server generated URL's or server generated id's". A user never wants to use/remember server generated strings, whether we call them URL's or id's. We want them to use versioned resource URLs and the Target-Selector header. Users won't be using Target-Selector headers in any case, client programs will. (I suppose a few users might explicitly type in HTTP requests, but I predict not many :-). A client program on the other hand will be responsible for generating the HTTP requests, and I don't see how a client program would find it preferable to pass a server-defined id in a Target-Selector header rather than a server-defined URL as a request-URL. To the contrary, I believe a client program will find it much easier to pass the URL through its marshalling logic, rather than passing both a URL and some id, and remembering to marshal the id in the appropriate header. This is even more true when it has to deal with several URL's (such as the Destination for a COPY or MOVE request). Here it would have to pass around two URL's and two id's, and remember to assign one id to the Target-Selector header and the other id to the Destination-Target-Selector header. And it also has to remember whether it is a revision id or a working resource id, because that has to be specified in the Target-Selector header as well. The URL's are starting to look pretty good to me by now (:-). So I think the versioned-resource and working-resource-id case are still needed. Simpliciy comes from uniformity. Actually, I think simplicity comes even more from simplicity (:-). To me, having: - a versioned resource URL - a revision URL - a versioned resource URL with a label in a Target-Selector header - a working resource URL - a history URL is simpler than having: - a versioned resource URL - a revision URL - a versioned resource URL with a version id in a "version-id" variant of a Target-Selector header - a versioned resource URL with a label in a "label" variant of a Target-Selector header - a working resource URL - a versioned resource URL with a working resource id in a "working-resource-id" variant of a Target-Selector or Destination-Target-Selector header - a history URL - a versioned resource URL with the "versioned-resource" variant of the Target-Selector header Also notice the nice interaction with Depth requests ... a depth request with a Target-Selector containing a label makes perfect sense, while a depth request with a Target-Selector containing a server defined revision id or server defined working resource id will virtually never be useful. It looks like we can throw out all the bathwater while maintaining a firm grip on the baby (:-). Cheers, Geoff