Clarifying subbaseline MERGE and UPDATE semantics

While reviewing the protocol to answer Alan's questions about
version-controlled collections, it appeared to me that the
(DAV:merge-baseline) postcondition in section 12.14 (additional MERGE
semantics for baselines) could probably use some clarification.  In
particular, I think it would be clearer if the subbaseline merge
behavior was separated out into its own postcondition.  This makes the
DAV:merge-baseline simpler for implementors that are not implementing
subbaselines (they can just ignore the DAV:merge-subbaseline
postcondition).

So for you die-hard deltav fans, here's the proposed rewording
of the DAV:merge-baseline postcondition:

 (DAV:merge-baseline): If the merge target is a version-controlled
 configuration whose DAV:checked-out baseline is not a descendant of
 the merge baseline, then the merge baseline MUST have been added to
 the DAV:auto-merge-set of a version-controlled configuration.  The
 DAV:checked-in version of each member of the DAV:baseline-collection
 of that baseline MUST have been merged into the
 DAV:baseline-controlled-collection of that version-controlled
 configuration.

 (DAV:merge-subbaselines): If the merge target is a version-controlled
 configuration whose DAV:baseline-controlled-collection contains a
 baseline-controlled member for one of the subbaselines of the merge
 baseline, then that subbaseline MUST have been merged into the
 version-controlled configuration of that baseline-controlled member.
 If the merge target is a version-controlled configuration whose
 DAV:baseline-controlled-collection is a member of a workspace that
 contains a baseline-controlled member for one of the subbaselines of
 the merge baseline, then that subbaseline MUST have been merged into
 the version-controlled configuration of that baseline-controlled
 member.

Similarly, section 12.13 (additional UPDATE semantics for baselines)
also needs a DAV:update-subbaselines postcondition):

 (DAV:update-subbaselines): If the request updated a version-controlled
 configuration whose DAV:baseline-controlled-collection contains a
 baseline-controlled member for one of the subbaselines of the request
 baseline, then the DAV:checked-in property of the version-controlled
 configuration of that baseline-controlled member MUST have been
 updated to be that subbaseline.  If the request updated a
 version-controlled configuration whose
 DAV:baseline-controlled-collection is a member of a workspace that
 contains a baseline-controlled member for one of the subbaselines of
 the request baseline, then the DAV:checked-in property of the
 version-controlled configuration of that baseline-controlled member
 MUST have been updated to be that subbaseline.

Any comments/objections on this proposed clarifications?

Cheers,
Geoff

Received on Monday, 2 July 2001 17:54:43 UTC