Date: Mon, 25 Oct 1999 23:10:23 -0400 Message-Id: <9910260310.AA25070@tantalum> From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com> To: ietf-dav-versioning@w3.org In-Reply-To: <F3B2A0DB2FC1D211A511006097FFDDF53438BF@BEAVMAIL> (message from Subject: Re: Versioning spec review - 02.3 From: Bradley Sergeant <Bradley.Sergeant@merant.com> <sarge2> So you're saying we can use advanced collections to restructure a versioned resource tree and achieve the same thing. Perhaps this will work, but I don't think so. My concern is that it means you have to have one primary structure for your versioned resources which you can never delete or restructure because you've got bindings that reference it. I think I see one possible cause for disconnect. In the old "direct reference" approach, a direct reference was a resource that specified another URL. In the new "binding" approach, a binding is just a reliable way of getting to a particular resource. You can "MOVE" a binding with the guarantee that all other bindings to that resource will continue to be valid (or the MOVE must fail). It's one thing to say that the history resource URI (which the server generates) must not change, but saying that a publicly used versioned resource URI (that the user invents) can't change I see as a big problem. My experience in this area tells me that we need an invariant URI or ID of some sort that allows you to always get at the same revision graph. I don't think the versioned resource itself can play this role because the client needs/wants to be able to move and delete these items for specific project needs, without affecting other structures used for other purposes that reference the same revision graphs. See the point? I believe this all works fine, with the semantics of BIND. As I've posted in earlier mail on this topic, I'd rather see: * the revision reference the working resources, That I'd want us to be careful about, to allow the working resources to be on different servers from the revisions. But as long as they are URL's, and not bindings, we're OK. * the working resources reference the workspace (which they do) and also the associated versioned resource (which they don't), A working resource references the revision, which in turn references the versioned resource, but we could provide the versioned resource reference in the working resource as well (at least, I'd be happy to add it). * the workspace reference the working resource (which they don't). Done (unless someone objects). I don't want: * the revision referencing the versioned resource (which it currently does), Why not? If you've got a handle on a revision, it's very useful to find out what versioned resource it is for (where the versioned resource gives you a handle on all the other revisions of that versioned resource). * the workspace referencing the versioned resource (which it currently does). I'd rather let the client go to the working resource to get this information if required. That's gone. That is the model I think works best, but it requires a history resource, or a two level lookup on a repository resource. We had the history resource before, but it suddenly vanished. We probably have to draw this all out on a whiteboard to make sure, but I believe bindings to versioned resources addresses the use cases you describe here. If not, I'm happy to bring back the history resource concept. Cheers, Geoff