- From: Clemm, Geoff <gclemm@rational.com>
- Date: Mon, 14 Jan 2002 17:08:08 -0500
- To: ietf-dav-versioning@w3.org
From: Tim Ellison [mailto:Tim_Ellison@uk.ibm.com] > "Clemm, Geoff" <gclemm@rational.com> wrote: > > If it is a change that results in a change to the DAV:checked-in > > property of any member of the baseline controlled collection > > (e.g. CHECKIN, UPDATE, MERGE), then it is considered a change to > > the version-controlled configuration, and such a change MUST be > > rejected unless the VCCn is checked out, or if auto-versioning is > > appropriately set for the VCCn. > While I agree that this gives some 'default baselining behavior' I don't think that such behaviour is desirable. That's fine. A server is free to support whatever subset of the auto-versioning behavior that it wants. So if you want just "auto-checkout" behavior (i.e. no automatic creation of baselines) for your server, that is fine. Firstly, the group decided that the DAV:auto-version property had to have a choice of four values to avoid versioning unaware clients causing problems. These baselining postconditions have no such provision, so a baselining unaware client can inadvertantly cause a large number of baselines to be created (which may be a very time/space expensive operation). I don't understand your point here. A VCCn is just a special kind of VCR, and therefore its DAV:auto-version property has the same (4) values that any other VCR would have. The meanings of these values remain unchanged ... the only thing that changes is what is considered a "change of state" to the resource. For a VCR, it is its content and dead properties. For a VCCl, it is the name and version history of its internal members. For a VCCn, it is the DAV:checked-in value of any of the members of its DAV:baselined-collection. What is worse, it is not a property of the resource or immediate resource parent that indicates the auto-behavior, but may be a property of an arbitrary parent. Actually, it is a property of the DAV:version-controlled-configuration of the resource, not a property of any of its parents. This is easily found with a single DAV:expand-property request (or two PROPFIND requests). I think it is quite possible that a client will issue multiple UPDATEs to a version-controlled resource; potentially unaware that they are creating multiple baselines along the way. A server that is concerned about this will support the appropriate flavor of DAV:auto-version (such as DAV:checkout, which never automatically creates a baseline). Secondly, as I pointed out above, creating a baseline only captures the checked-in version-controlled resources, yet there are likely to be non-version-controlled and checked-out resources in the configuration. A baselining unaware client is clearly not in a position to ensure that all resources are maintained in their checked-in state so that they are captured in the auto-baseline (they _can_ do it, they just don't know _to_ do it), which means that the auto-baselines are likely to be `logically inconsistent`. It is true that inconsistent states of version-controlled resources can exist on the server, and that a baselining unaware client has no way of baselining only the consistent states. But a server with the appropriately efficient baselining mechanisms might just want to capture all of those states. And a server that doesn't want to will just use DAV:checkout as the value of DAV:auto-version. I don't think the case for auto-baselining is nearly as strong as that for auto-versioning for a number of reasons; and it will behove baseliners to label 'good' baselines so they can find them in the noise of the auto-baselines. Similarly, the case for auto-versioning collections is probably even stronger than the case for auto-versioning resources with content, and a server is free to support the appropriate kind of auto-versioning with each kind of resource. I personally believe that DAV:checkout-unlocked-checkin or DAV:locked-checkout will be most common for resources with content, DAV:checkout-checkin will be most common for version-controlled collections, and DAV:checkout will be most common for version-controlled configurations. But that doesn't argue against the use of auto-versioning for VCCn's, it just says that the "common" DAV:auto-version value for a VCCn will be different from a VCR or a VCCl. Cheers, Geoff
Received on Monday, 14 January 2002 17:09:15 UTC