Date: Wed, 6 Oct 1999 09:58:47 -0400 Message-Id: <9910061358.AA14793@tantalum> From: "Geoffrey M. Clemm" <gclemm@tantalum.atria.com> To: ietf-dav-versioning@w3.org In-Reply-To: <1999Oct05.183300.1250.1342848@otismtp.ott.oti.com> Subject: Re: target selector again From: Jeff_McAffer@oti.com (Jeff McAffer OTT) <jm> This is still causing general distress. It seems like the Target-Selector is doing double duty. In one case (when its a workspace) we are saying that it is the one and only workspace to use to find the resource revisions. In the other cases it seems to be used to help identify the revision of the resource for the last segment of the Request-URI. In the latter case, any resource revisions not found in the thing identified by the Target-Selector causes the server to look in the default workspace. Unfortunately, there are likely a large number of users for how the default workspace is uninteresting and the story becomes inconsistent. If a client has her own workspace, falling back on the default workspace is unlikely to identify any of the resources/revisions in which she is interested. It seems like the Target-Selector should be split into two parts (or, dare I say it, two headers) - one for the workspaces to use and the other for the config, activity, revision-id, ... This would be clearer and more consistent. <gmc/> Interesting. I tend favor header minimization, but I find your argument quite convincing. In particular, a reasonable name for the header for workspaces would be "Workspace" (pretty creative of me, I know :-), and then "Target-Selector" could be the other one. To be completely honest, I have lost sight somewhat of what problems are solved by having non-workspace values of the Target-Selector. I didn't realize that "no support for versioned-collections" was a valid DeltaV "mode" (refering to gmc's comments) below). I can understand activities and configs etc but only when I can also talk about a backing workspace since these structures are not necessarily complete namespaces (i.e., from root). </jm> <gmc/> One area where versioned collections are not needed are for document management systems where the documents live in a flat namespace and inter-document references are done with GUID's rather than URL's. Another area is to make the protocol suitable for simple servers that just want to dump leaf versions into an RCS file, and don't want to track namespace changes. In these cases, a simple selection of the the revision-id of the leaf is quite sensible. <gmc/> One sanity check that the two header approach satisfies is: "Does it make sense to use both headers in one request". I believe the answer is yes, because even if you are using a workspace to select all the versioned collection revisions, it still makes sense to request particular revisions of the leaf versioned resource. For example: GET /x/y/foo.html Workspace /dav/workspaces/geoff Target-Selector <D:rsr-revision-id> r75 </D:rsr-revision-id> could be used to select revision r75 of /x/y/foo.html instead of the default one that /dav/workspaces/geoff would select. The version selection for /x and /x/y would be peformed by the workspace revision selection rules. With this approach, the absence of a Workspace header would clearly indicate the desire to use the default workspace. Cheers, Geoff