RE: root-version

   From: John Hall [mailto:johnhall@evergo.net]

   What if the original root version has been deleted?

To answer this, you would want to look at the DELETE semantics
in the version-history feature.  There you will find:

(DAV:version-history-has-root): If the root version of a version
history was deleted, the server MUST have updated the DAV:root-version
of the version history to refer to another version that is an ancestor
of all other remaining versions in that version history.  A result of
this postcondition is that every version history will have at least
one version.

   I could return the earliest version, null, or somehow make the root
   version special and non-deleteable.

Yes (with a caveat), no, and yes.

You are allowed to return the earlierst version if it is the
ancestor of all other remaining versions (which it would be,
if you do not allow branching).  You are not allowed to return
null (because of the DAV:version-history-has-root postcondition).
You can make the root version special and non-deletable.

   But the last would require custom errors for DELETE

The spec defines this error code.  It is DAV:version-history-has-root.

   As I am coming to understand how this process works, I'm anticipating
   the following reaction:

   1) The spec is silent, do it any way you want.

Not this time (:-).

   2) We don't think versions should ever be deleted.

The protocol has always supported explicit version deletion
(it is only implicit version deletion as a side effect of
deleting another resource which has met resistance).

   3) If you allow the root to be deleted, returning the earliest version
   is probably the least bad option.

Returning the new root (effectively updating the DAV:root-version)
is a good option.  Refusing to delete it is also a good option.

   4) A special cannot-delete-root-version element is out of the question.

Yes, but only because we already have defined
DAV:version-history-has-root for this case.

Cheers,
Geoff

Received on Thursday, 28 June 2001 14:57:46 UTC