possible new property?

For VCRs that are under baseline control, I propose that we add a new
property that specifies their relative path to the "root" of the baseline,
where the root is defined by the baseline's DAV:baseline-collection
property.

[ hmm. just noticed something: that property assumes the baseline is not
  disjoint. fixing that is "out of scope" of this message :-) ]


Without the property mentioned above, it would be very difficult to figure
out where to go in a baseline to find the matching resource. Specifically,
the algorithm would be something like:

1) for a resource "R", get the DAV:version-controlled-configuration
   property from the resource (if a collection) or its parent
2) get the DAV:checked-in property of the VCC to get the baseline
3) get the DAV:baseline-collection property from the baseline
4) get the DAV:version-history property of the resource at the root of the
   baseline-collection
5) starting at R, set "current" to R, then:
   -) fetch the DAV:version-history of "current"
   -) if it matches the VH from the baseline-collection, then exit loop
   -) set "current" to parent of "current". loop.
6) use the relative path between "current" and R to move downwards within
   the baseline-collection

Steps 4 and 5 just disappear if the baseline-relative-path property is
present on the VCR.
(note that steps 1, 2, and 3 are a single expand-property report; step 6 is
 just URL construction -- there is no server request)

With the property, we have a single REPORT. (to fetch the relative path, and
to expand thru the VCC and the baseline to the baseline-collection)

Without the property, we have a REPORT plus N additional requests.

Note that we can also use the relative path to (hopefully) access other
baselines. Presuming the "current" baseline defined by the VCC isn't too far
different from the target baseline, the path will still apply.

Any thoughts?

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Received on Friday, 16 February 2001 06:50:27 UTC