Re: Bindings, Locks, and MOVE

   From: ccjason@us.ibm.com

   <gmc>
   Add "DAV:merge" as a new potential value of the Overwrite header
   when used with the COPY request.

   The semantics COPY with Overwrite=DAV:merge is to "merge" the source
   resource into the destination resource.  In case of non-collection
   resources, this is just the equivalent of a PUT and a PROPPATCH into
   the Destination.  In case of collection resources, it means
   recursively PUT/PROPPATCH from the members of the source collection
   into the corresponding member of the destination collection.
   </gmc>

   <jlc> 

    S\ Dest
    r \
    c  \
	\     empty      |     non-Coll     |   Collection
	 +---------------+------------------+----------------
	 |NC->E          |NC->NC            |NC->C
   non   |               |                  |
   Coll  |   copy it     |     ?replace?    |       ?
	 |               | (bind new copy?) |
	-+---------------+------------------+----------------
	 |C->E           |C->NC             |C->C
   Coll  |   copy it     |         ?        |   copy members
	 |   & members   |                  |     only

   </jlc>


<gmc>
NC->NC is a combined PUT/PROPPATCH.  All bindings to the destination
continue to be valid.

C->NC replaces NC with a copy of C.  Any bindings to NC are now bindings
to the copy of C.  If the server cannot do this rebinding, it must fail
the COPY request.

NC->C replaces C with a copy of NC.  Any bindings to C are now bindings
to the copy of NC.  If the server cannot do this rebinding, it must fail
the COPY request.

C->C Recursively perform the merge MOVE from every member of the source
collection to the corresponding member of the destination collection.
</gmc>

Cheers,
Geoff

Received on Friday, 17 September 1999 00:24:40 UTC