- From: Clemm, Geoff <gclemm@rational.com>
- Date: Tue, 2 Oct 2001 23:26:47 -0400
- To: ietf-dav-versioning@w3.org
From: Roy Seto [mailto:roy.seto@oracle.com]
Resending since this didn't seem to make it to the list.
That is strange ... Peter seems to be having similar problems with only
some of his posts making it through.
Clarifications:
- Version-controlled collection feature: Does eclipsing a
version-controlled collection eclipse its members as well?
Yes. A collection consists of a set of bindings. If you eclipse a
collection with a non-collection, there are no members there. If you
eclipse a collection with a different collection, it is the bindings
of the eclipsing collection that you see.
- Activity feature: Is there an interoperable way to "close" an
activity (that is, prevent any more checkouts or checkins in that
activity)? Followup: if not, how much demand would there be for
standardizing this concept?
I suggest we should soon start a follow-on "change request"
working group (we could start under the auspices of the
WebDAV working group). In particular, we would then discuss
various states that an activity could be in, and how to
standardize transitions between those states (is PROPPATCH
enough?). Minimally, we could decide on some standard
XML element for the state field of an activity, and a few
"standard" state values. Perhaps a BOF at the Dec IETF?
Is This A Bug?
- Baseline feature: Is it possible to construct a workspace which
contains multiple VCR's with different DAV:checked-in versions
for a given VHR by doing a MOVE of a VCR from one
baseline-controlled collection to another, and then UPDATING the
VCC's for those BCC's?
I think the intent of the spec is clear (only one VCC for a given
version history in a given workspace), but I agree that
we are missing a postcondition on the MOVE operation. A
workspace is required to have only one VCR for a given version
history, so any operation that would violate that constraint (which a
MOVE could) should fail. Similarly, we should clarify in the extended
UPDATE semantics, so that it is clear that the UPDATE of a VCC causes
an existing VCR to be bound into a collection, if there already is a
VCR for a given version history in the workspace.
Since these semantics can be inferred from the global statement
that a workspace can only contain one VCR for a given version
history, I think this clarification can wait for the next rev
of the spec (not that you were suggesting otherwise).
Possible extensions
- Activity feature, update feature: Define the semantics of UPDATE
where the source is an activity. Use case: Provide a performant
standard way for clients to ensure that the members of a
workspace select the latest version of an activity. This is key
to support the concept of merging to an activity (by merging to a
workspace which selects the latest versions in that
activity). (Note: ideally, this extension would also modify
generic UPDATE marshalling so the DAV:update element had a
DAV:source child element, like MERGE does, instead of a
DAV:version element. An activity resource is not a version
resource).
I find this not very compelling. An activity is a logical
change set. Simply "setting" some of your versions to those
selected by some change set sounds like a great way to
hide parts of existing change sets, and making your workspace
inconsistent. So "MERGE" on an activity makes sense to me,
but "UPDATE" does not. Perhaps you could develop the use case
in some more detail?
- Merge and update features: Add a flag to make DAV:response
elements of UPDATE optional, and to make DAV:response elements of
MERGE optional for targets modified by postcondition
DAV:descendant-version. Use case: improve response times when the
request-URL of the MERGE or UPDATE has an extremely large number
of members whose DAV:checked-in versions are modified by the
MERGE or UPDATE, and when the client's caching policy will not
benefit from the DAV:response elements enough to outweigh the
cost of adding the DAV:response elements to the response body.
A server has to compute all of this information anyway (to do the
update), so all one would be saving would be the cost of sending the
info back (which is rather small chunk of information, compared to
what the net is set up to pass around). But if this really turns out
to be an issue in practice, it certainly would be easy to add such an
extension. Are you getting actual performance numbers on this that
concern you?
- Autoversioning (extension), baseline feature (use case): In
Section 3.2.2, change the EMPTY elements in the DAV:auto-version
property values to ANY, enabling DAV:checkin and DAV:checkout
elements with default checkin and checkout options for the
autoversioned VCR to be applied at auto-checkin and auto-checkout
time. Use case: multiple workspaces share the same
DAV:current-activity-set and the same DAV:checked-in baselines
for their version-controlled configurations, and those VCCs'
DAV:auto-version properties are DAV:checkout. There is a problem
because baseline-controlled members of those workspaces cannot be
checked in even if they are for different version histories -
only the first workspace can auto-checkout its VCC unreserved in
the shared DAV:current-activity-set.
That sounds pretty reasonable to me. I might just give these their
own property names though, so that it is easier for a client to
determine if this option is supported.
Cheers,
Geoff
Received on Tuesday, 2 October 2001 23:27:19 UTC