W3C home > Mailing lists > Public > ietf-dav-versioning@w3.org > January to March 2001

Re: possible new property?

From: Greg Stein <gstein@lyra.org>
Date: Sat, 17 Feb 2001 13:12:21 -0800
Cc: ietf-dav-versioning@w3.org
Message-ID: <20010217131220.K27443@lyra.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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 13:57:40 GMT