RE: how to perform undeletion

   From: Sohn, Matthias [mailto:matthias.sohn@sap.com]

   I think when the resource version to be revived in order to
   undelete the resource has been found the undelete operation can be
   done in the following way :

   - check out the collection which shall contain the resource to be
     undeleted,

Yes.

   this yields a working collection which is bound to an activity
   (since I want to track all changes in activities)

Yes.

   - issue VERSION-CONTROL on the resource version contained in the
   old collection version before the deletion of the resource took
   place

A collection version does not contain resource versions, it contains
a DAV:version-controlled-binding-set property that contains a set of
name/version-history pairs.

Also, you don't issue VERSION-CONTROL requests to members of a working
collection, because a working collection does not contain
version-controlled resources (and VERSION-CONTROL creates a
version-controlled resource).  The VERSION-CONTROL request is used to
restore resources to checked-out collections (i.e. to collections that
can be checked-out in place), not to working collections.

     In this request specify the URL under which the VCR for the resource to
be
     undeleted shall reappear.

   - check in the activity containing the working collection which now has a

     binding pointing to the newly created VCR for the undeleted resource.

Working collections cannot contain a VCR.

   - if since the resource has been deleted another resource has been
created 
     with the same URL the VERSION-CONTROL request given above will fail. 
     In this case the client has to reissue VERSION-CONTROL specifying 
     another request URL which uniquely identifies the URL of the resource 
     to be undeleted.

   Is this approach compliant to the DeltaV spec ?

No, with working resources, you have to CHECKOUT a collection version
that identifies the version history of the desired version in its
DAV:version-controlled-binding-set.  Then you can MOVE that version
history from that working collection into the destination working
collection, DELETE the source working collection, and then CHECKIN
the destination working collection.

Cheers,
Geoff

Received on Friday, 15 March 2002 15:57:00 UTC