- From: Greg Stein <gstein@lyra.org>
- Date: Sat, 17 Feb 2001 13:12:21 -0800
- Cc: ietf-dav-versioning@w3.org
Scenario:
I have a large tree (/B/), with a lot of content, under baseline
control. The client desires to fetch a component of it (/B/C1/C2/C3/).
To ensure that a consistent baseline is fetched, the client wants to
move from .../C3/ over to the baseline-collection and fetch from there
(/BCs/b42/C1/C2/C3).
How does it get from C3 to /BCs/b42/C1/C2/C3/ ?
Getting from C3 to /BCs/b42/ is a single REPORT. Locating C3 is difficult.
With a property [on /B/C1/C2/C3/] that returned "C1/C2/C3/", it would be a
snap.
An alternative is to have a DAV:href directly from the VCR to the specific
collection within BC.
In my scenario, I prefer the relative path because there are situations
where the client says "get C3 from baseline FOO". It is acceptable for
FOO:C3 to be different (i.e. different version history) than CURRENT:C3
because it is the *path* to C3 that is the input to the operation. It is
also acceptable for FOO:C3 to simply not exist.
Cheers,
-g
On Fri, Feb 16, 2001 at 03:52:36AM -0800, Greg Stein wrote:
> 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/
--
Greg Stein, http://www.lyra.org/
Received on Saturday, 17 February 2001 16:09:57 UTC