Message-ID: <384D9937.1DD69829@us.oracle.com> Date: Tue, 07 Dec 1999 15:33:12 -0800 From: "Eric Sedlar" <esedlar@us.oracle.com> To: jamsden@us.ibm.com CC: ietf-dav-versioning@w3.org Subject: Re: Baselines vs. labels It seems excessively complex to have three different ways to identify a set of revisions (for use in revision selection rules). I don't see much utility for baselines if you can never change the revision of a particular file in a baseline. It seems to me that the performance benefits of baselines are based on the fact that you have a contiguous subtree of revisions, where there is no need to check the revision selection rules when traversing a link (this often involves searching through the list of revisions in a versioned resource to find the latest one or a particular label, etc.). Each collection revision in a baseline can point directly to the associated revision the next layer down. What if you introduced a new concept like "baseline configuration". A baseline configuration would be rooted at a particular versioned collection recursively, just like a baseline. However, you would be allowed to change the revisions in a baseline configuration after creating the configuration. Then you can get rid of baselines & configurations, and simplify the spec. You would get the performance benefits of baselines plus the flexibility of configurations to define a particular release of a content group. You could always use labels for configurations from disparate parts of the URL namespace. If you want to prevent baseline configurations from being changed, use access control. Is the reason you consider labels less "reliable" than configurations due to the assumption that you are protecting them with access control on a bunch of different resources rather than access control on a single resource? Also, can an administrator rename baselines? (E.g. I create a baseline from /amazon/catalogs/music at a particular point in time, and store it in "/baselines/amazon/catalogs/music/dec6_99.base". Then I modify the revision selection rules in the workspace I have selected, and create a new baseline from /amazon/catalogs/music, which includes a different set of revisions, and call it "/baselines/amazon/catalogs/music/temp.base". Can I delete the first baseline and rename the second one to have the same name as the first one, thus changing the selected revisions for anyone who has referenced "/baselines/amazon/catalogs/music/dec6_9.base" in their revision selection rules? --Eric <jra> There are three ways to specify a set of revisions: - a set of revisions sharing the same label - members of the same configuration - members of a baseline Labels are simple, easy to understand, have human meaningful names, are easy to move around, but aren't immutable and can't be used reliably to specify a consistent set. Configurations are a little more complicated and harder to implement, but have most of the advantages of labels while providing a reliable way to specify a persistent set of revisions. Baselines can be thought of (and may be) a configuration whose single member is a revision of a versioned collection. This simplification can have performance consequences. </jra>