Deleting versions

I know not all implementations of DeltaV will allow deleting old versions,
but the specifications specifically allows it.  I've been looking into that
functionality and encountered some issues and questions.

#1)  Is there some way of finding out, before trying the delete, if it's
possible to delete a version?  Before you say "supported-method-set", allow
me to point out that this property is not shown to exist on versions.

#2) It looks like there's a set of error msgs the server can return if it
decides to prevent the user from deleting the referenced version, the root
version, or all versions.  What error msg should the server return if it
decides to prevent the user from deleting the "current" version (though one
that is not checked out)?  Or what if the server decides to prevent the only
remaining version from being deleted?

#3) I don't understand the following text from 3.12:
"(DAV:update-predecessor-set): If a version is deleted, any reference to
that version in a DAV:predecessor-set MUST be replaced by a copy of the
DAV:predecessor-set of the deleted version."  Does that mean that before
deleting a version, the client must munge the predecessor-set properties of
a bunch of other versions?  But the predecessor-set is protected!  Or does
it mean that the server must update the predecessor-set before performing
the action, and if it cannot, it returns the error msg?  Please explain this
better in the draft & to the list...

#4) Can situations arise where resources can have no versions?  I can
actually think of two ways this might be achieved:
 - A client deletes all the versions (but not the version-controlled
resource)
 - A null resource gets versioning turned on but no body is added
Must clients be able to deal with VCRs with zero versions?  If not, then we
need to make a requirement on servers that they must not ever create a VCR
with zero versions.

lisa

Received on Friday, 25 May 2001 12:59:53 UTC