- From: Greg Stein <gstein@lyra.org>
- Date: Mon, 18 Dec 2000 06:48:25 -0800
- To: ietf-dav-versioning@w3.org
On Mon, Dec 18, 2000 at 12:07:39AM -0500, Geoffrey M. Clemm wrote: > > From: Greg Stein <gstein@lyra.org> > > The spec is pretty clear in 2.1.3 that dead properties of a version resource > must also be exposed on the VCR. It also says that live props may differ. > But it would be good to know if a VR's live props must also be exposed on > the VCR. > > Specifically, I want to get the DAV:version-name from the VCR (rather than > issue a second PROPFIND against the DAV:target of the VCR). > > You could just use the property report to avoid the extra roundtrip, i.e. > to get the version-name of the target of a vcr: > > REPORT /whatever HTTP/1.1 > ... some headers ... > <D:property-report xmlns:D="DAV:"> > <D:target> > <D:version-name/> > </D:target> > </D:property-report> hehe... that will be even worse. The PROPFIND that I'm using is a Depth:1 request. I'm fetching the props for a whole bunch of resources. If I switched to a REPORT, then I'd need to do a PROPFIND on a collection to get all the children, then a PROPFIND/REPORT to link thru the target to get the props off the version resource. Blarg... What would be neat is a collection property providing the URLs of its members. You could then do a property-report kind of like: REPORT /the-collection HTTP/1.1 ... some headers ... <D:property-report xmlns:D="DAV:"> <D:member-set> <D:target> <D:version-name/> </D:target> <D:/member-set> </D:property-report> :-) (this would also be nice in that I wouldn't have to filter out the PROPFIND result for the collection itself... I'd only get the internal members) [ and I'm not truly suggesting this new property, but it is certainly an interesting item to ponder... ] > I don't see anything in the spec about exposing VR live props thru the VCR > (I could have easily missed it so far). I'd like to state that they *are* > exposed. > > In general, the VCR live properties can differ from those of the > version identified by its DAV:target (e.g. creationdate, > getmodificationdate, etag, etc). Currently, a server can implement a > VCR PROPFIND without traversing over to the target (which in a > distributed versioning system could exist on a different server). > There are some live properties (such as DAV:version-name and > DAV:version-history) that could be cached on the VCR because they only > change when you change the DAV:target, but I am concerned that this > blurring of the distinction between a VCR and the version identified > by the DAV:target of the VCR is likely to confuse implementers into > thinking that all the live properties of the VCR and the DAV:target > version have the same value. Well, the simple issue in my mind is "I've got this (VC) resource here, but I don't know what it is [without the version-name]." There is a non-trivial amount of work to go and fetch that version-name; if it had simply been exposed via the VCR, then I'd be fine. I'd think the following properties are "important" to have appear on the VCR, and a statement that they MUST be the same: DAV:version-name DAV:checkin-date DAV:comment (*) DAV:creator-displayname (*) DAV:version-history DAV:version (+) (*) actually, the VCR could define these itself, so these might be confusing to have appear on the VCR. (+) this is unchanging, but is just a copy of the DAV:target prop (??) There are some informational properties: checkin-fork, checkout-fork, and mutable; I don't have any feelings about them. I'm also not going to suggest the *-set properties, since they could be computed and will change from time to time. The properties above are all (typically) immutable. It would be nice to have a MUST for these, and then a SHOULD for others (or even punt the others). Punting all others would satisfy Geoff's concern about people blurring the distinction between the resources. Avoiding the *-set properties will also help out with the remote system issue. Yet, *having* these can provide great benefits to the client. Consider the version-history property: a client can then quickly link to the history and gather information. The version-name and checkin-date provides useful information about what you're looking at. (the comment/creator-displayname are handy, but not terribly so -- they only talk about the last change rather than anything intrinsic about the resource). Cheers, -g -- Greg Stein, http://www.lyra.org/
Received on Monday, 18 December 2000 09:44:51 UTC