Date: Mon, 20 Dec 1999 16:50:08 -0500 Message-Id: <9912202150.AA07768@tantalum> From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com> To: ietf-dav-versioning@w3.org In-Reply-To: <8525684D.00505FBE.00@d54mta03.raleigh.ibm.com> Subject: Re: DAV:baselines From: jamsden@us.ibm.com I think this is great. I thought you might approve (:-). However, as I recall, the reason you wanted to distinguish baselines from versioned configurations is that a versioned configuration could be checked out and modified in such a way that it was not a baseline of a versioned collection any longer. We also said that a baseline wasn't a subclass of a configuration because it didn't have the behavior for adding and removing members. Yup, those are the two things I didn't like. But we can just say: "The contents of a checked-out DAV:baselines configuration tracks the contents of the workspace into which it was checked out. Attempts to explicitly add or delete members from such a checked out configuration MUST fail." However, I think we could stick with this definition, and just refine the behavior for adding and removing members to be private implementations of the create accessor for a baseline (please excuse the OO speak, but you get my point). Yup. This would violate the "substitutability" of a baseline as a configuration, but life goes on (:-). Now we have a new DAV:resourcetype called DAV:baseline which is a DAV:configuration with the additional behavior of how baselines are created, their semantics, and a refinement of the add/remove member that makes them private and used to create the baseline. Make sense? We can just use standard checkin/checkout to create baselines (since they are now just revisions of a versioned configuration). We just need to "turn off" add/remove member, and replace it with "automatic workspace tracking". Even Eiffel let's a class hide features from a parent, so there's plenty of precedent for doing so. Cheers, Geoff "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>@w3.org on 12/19/99 In the latest version of the protocol (deltav-01), I changed the DAV:baselines property of a versioned collection from being a versioned configuration to being a collection of revisions. Since we are removing property collections, and since at least a couple of folks objected to this change anyway, I'm planning on bringing back the old definition, i.e. that DAV:baselines identifies a versioned configuration. Any objections?