- From: Clemm, Geoff <gclemm@rational.com>
- Date: Wed, 11 Jul 2001 14:44:23 -0400
- To: ietf-dav-versioning@w3.org
From: Peter Raymond [mailto:Peter.Raymond@merant.com] Section 10.2 of the specification defines a "Baseline-Controlled Collection" as follows: A "baseline-controlled collection" is a collection from which baselines can be created. But section 12 says: A collection that is under baseline control is called a "baseline-controlled collection". They can't both be right, is a BCC a resource from which a Baseline CAN be created or is it a resource from which a Baseline HAS BEEN created? These statements don't explicitly talk about whether or not a baseline has actually been created, but when you put a resource under version control (or baseline control), an initial version (or baseline) is always created for that resource, so all these statements (both the ones in the protocol and yours above) are consistent. The definition in Section 10.2 seems wrong, I don't think you create a Baseline from a collection, you create it by checking-in a version-controlled configuration, which itself was created by placing a collection under BASELINE-CONTROL. Yes, but the versions selected by that new baseline are determined from the current state of the configuration rooted at the baseline-controlled collection. This reflects the dual role of a collection; namely, as a resource unto itself (from which you can create collection versions), and as the root of a configuration (from which you can create configuration versions, aka "baselines"). Since WebDAV only gives us one URL to talk about the collection itself and the configuration rooted at the collection, we continually have to deal with this dual role for a collection URL. Infact, am I right in thinking that a "Baseline-Controlled Collection" is simply a collection which has a DAV:version-controlled-configuration property? Actually, all members of a baseline-controlled collection have a DAV:version-controlled-configuration property. So a baseline-controlled collection is a collection identified by the DAV:baseline-controlled-collection property of some version-controlled configuration. I am trying to get my head around what steps are needed to create a new Baseline, populated with the contents of a collection, for example: There is a Version-Controlled Collection /build/src/. My client issues a BASELINE-CONTROL on that Version-Controlled Collection. At this point a new "Version-Controlled Configuration" is created. The original collection gets a DAV:version-controlled-configuration property set to the newly created resource. The Version-Controlled Configuration gets a DAV:baseline-controlled-collection property set to the original collection. A new Baseline History resource is created. A new Baseline version is created (the "root baseline"). The DAV:checked-in property of the Version-Controlled Configuration is set to the "root baseline". A new collection with no members is created. The "root baseline" has a DAV:baseline-collection pointing to the above empty collection. Yes. So at this point I have a "empty" baseline, how do I populate it with the checked-in versions of resources from the original collection? I guess I check-out the version-controlled configuration that was created by the BASELINE-CONTROL and just check it in again??? Yes, but you raise a good point. The BASELINE-CONTROL request would be more consistent with the VERSION-CONTROL request if it created a baseline that captured the current state of the configuration rooted at the baseline-controlled collection, instead of creating an empty baseline. In this case, the answer to your question would just have been "it is the current DAV:checked-in baseline". This would mean changing the DAV:create-empty-baseline postcondition of BASELINE-CONTROL to be DAV:create-new-baseline. Does anyone object to this change? I don't think many people have been implementing the advanced semantics yet, so I'm more comfortable making these kinds of adjustments to the advanced semantics than I would be to the basic semantics. This is not clear in section 12, perhaps an example or diagram of creating a new baseline might help in this section....something like this: +-----------+ |Version | +------------|Controlled |<--+ | |Collection | | | +-----------+ | | |DAV:b-c-collection |DAV:v-c-configuration | | | | +-------------+ | +->|Version |-----------+ |Controlled | |Configuration|--+ +-------------+ | | DAV:checked-in | +---------+ | |Baseline | | |History | | | | | | +---+ | +-------------+ +--->|V1 | | DAV:b-collection |Collection | | | |---------------------->|with bindings| | +---+ | |to resources | +---------+ |from the | |original | |collection. | +-------------+ Am I on the right track? Yes, that is exactly right. Cheers, Geoff
Received on Wednesday, 11 July 2001 14:37:07 UTC