- 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