RE: how to perform undeletion

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

   how can undelete of a versioned resource (residing in a versioned
   collection) which has been deleted somewhen in the past be done
   using DeltaV ?

   There are two things which have to be solved here:
   *	find the deleted resource(s) under a given path  
   *	undelete resource(s)
   I would like to do it with using an activity and working resources
   so that the undeletion is tracked in the activity.

Note that tracking the undeletion requires that your server support
either versioned collections or baselines (or both).  If your server
does not support in-place-checkout, then it has to support versioned
collections in order to track the undeletion.

Also note that tracking the undeletion in an activity requires that
your server support versioned collections (baselines aren't enough)
and activities.

Also note that using a working resource (i.e. a client side workspace)
is not needed for either tracking the undeletion, or for tracking the
undeletion in an activity, but that it does affect the requests you
need to issue in order to do the undeletion.

   How can the browsing for deleted resources (or collections) be done
   in an efficient way, i.e. how can the client find out which
   resources have been deleted let's say recursively under
   /a/b/c/... ?

The easiest way to find deleted resources is if the server supports
baselines.  In this case, you can just browse the collections identified
by the DAV:baseline-collection property of the baselines to find
the resource you want to undelete.  Alternatively, if the server
supports versioned collections, you could browse through versions
of visible collections to find the version history of the deleted resource.
And finally, you could scan through the DAV:version-history-collection-set,
but that would be an extreme last resource, since it is likely to be
hard to find the version history you want from the set of all version
histories.

Once you have found the version you want to restore, what you do
depends on whether the server supports the checkout-in-place or the
working-resource option.  If it supports checkout-in-place, you just
do a VERSION-CONTROL request that identifies the version you want
restored.  If it supports the working-resource option, you need to
checkout a collection containing the version history of the resource
you want to restore, checkout a destination collection, MOVE the
desired resource from the first working collection to the second,
delete the first working collection, and CHECKIN the second working
collection.

Cheers,
Geoff

Received on Friday, 15 March 2002 15:44:39 UTC