Message-ID: <FD7A762E588AD211A7BC00805FFEA54B041DD982@HYDRANT> From: "Chris Kaler (Exchange)" <ckaler@Exchange.Microsoft.com> To: "'jamsden@us.ibm.com'" <jamsden@us.ibm.com>, ietf-dav-versioning@w3.org Date: Tue, 12 Oct 1999 10:31:07 -0700 Subject: RE: Revision names I think these are somewhat separate discussions: 1) Do we separate label namespace from id namespace 2) Do we allow labels and/or ids in headers 3) Can labels and/or ids be combined to construct URLs My opinion on these... 1) I would like these to be separate namespaces. My argument has been that the server needs to be able to determine if X is an 'id' or a 'label'. We need a way to differentiate them -- context is fine if it works. 2) Headers are a good thing. I should be able to alter the behavior of GET by including a header that indicates which version I want. This has a lot of advantages in that I can separate URL from version (revision). Also, I can have separate headers, or special syntax in the header to address #1. 3) As stated below, I'm against requiring this, unless the server has said that they support property collections in which case the server has signed up to some additional requirements. Just my two cents... :-) -----Original Message----- From: jamsden@us.ibm.com [mailto:jamsden@us.ibm.com] Sent: Tuesday, October 12, 1999 10:20 AM To: ietf-dav-versioning@w3.org Subject: RE: Revision names If the revision name (id or label) is provided in a separate header, then would we still need to construct these URLs? I think we should avoid this if we can. "Chris Kaler (Exchange)" <ckaler@Exchange.Microsoft.com> on 10/12/99 01:00:35 PM To: Jim Amsden/Raleigh/IBM@IBMUS, ietf-dav-versioning@w3.org cc: Subject: RE: Revision names I am strongly opposed to the specification describing what a revision id must look like. I know Jim only said that they should be valid path segments, but, in retrospect, I think that is too severe. If my sever wants to use a URI to refer to a revision, then I should be allowed to. However, this may not be a "valid" URL segment. As well, the specification shouldn't require the ability for a client to be able to "glue" these with other information and expect to have a URL that works. Now if a server supports property resource collections, then they better conform to this. But a server that doesn't, shouldn't have to. This approach will limit servers from providing ids that are optimized to their store's. Chris -----Original Message----- From: jamsden@us.ibm.com [mailto:jamsden@us.ibm.com] Sent: Tuesday, October 12, 1999 7:53 AM To: ietf-dav-versioning@w3.org Subject: Re: Revision names We can think of the server as another collaborator in distributed authoring systems, one that provides a set of services. In particular, there can be little distinction between a revision name (something that distinguishes one revision from another in this context) specified by some other client and one specified by the server. In both cases there is the possibility for collisions, and in both cases, there is the desire to use the revision name to select a revision. As Tim points out below, there is also a desire for the syntax of label names to be consistent with URLs, and to be able to marshall revision names in request and response entity bodies (in XML) as well as in headers. The only difference I can see is that the server's revision name, the revision id, can't be moved or reused - its an immutable or fixed label that ensures revisions can always be distinguished. Any attempt to move or reuse the label id results in an error. This makes potential client/server collisions even safer than client/client collisions as there is no possibility of some other client getting an unexpected revision because some other client or the server moved the label id. The only reason to separate id and label name spaces seemed to be to avoid client/server label name collisions. But it is clear that client/client name collisions are much more likely to happen, and have greater consequences (as measured by the principle of least astonishment). I continue to find it hard to justify the complexity separate label namespaces adds to the protocol vs. the problems it solves. Does anyone else see other issues that separate namespaces would avoid? Tim_Ellison@oti.com (Tim Ellison OTT) on 10/12/99 10:26:17 AM To: ietf-dav-versioning@w3.org (ietf-dav-versioning) cc: Subject: Revision names As mentioned by both Jeff (by phone) and Geoff (in an earlier positing), revision id's must be legal URI path segments if we envisage the ability to refer to a revision by a URL (i.e. DAV:history's revisions collection "/" DAV:revision-id). Maybe we will also want to refer to a particular labelled resource by a URL in a similar fashion. If we choose to differentiate labels and revision id's by extra syntax surrounding the value this would lead to bizzare looking URLs. Having listened to the discussions, I think that the argument for avoiding collisions between labels & revision ids has been largely debunked; and the protocol would undoubtably be simpler if there was not requirement to separate namespaces. However, labels and revision ids have different characteristics from the client's perspective and it would be immensely reassuring to know which you are dealing with at all times. I just don't see yet how this would fit into the protocol. Tim