Re: Bindings, Locks, and MOVE

   From: ccjason@us.ibm.com

   <jc/> Geoff, please check me if I'm wrong... but I think kevin is
   talking about COPY/MOVE'ing ***TO** the multiply bound resource, not
   from.  As currently written, the COPY/MOVE does a delete on the
   destination right up front... so the binding to a shared object is
   lost.  A PUT to either URI of the resource doesn't break their ability
   to share the resource.

   <gmc>
   Ooops!  Jason is completely right.  Sorry about the bandwidth wastage.
   So I'd like to retract my earlier posting, and just agree with Kevin
   that a COPY that preserves destination bindings is a useful operation
   that is currently not provided by the protocol.

   As a form of penance, I will propose a solution to this problem:

   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.

   Any takers?
   </gmc>
<jlc>
I'm a taker.  I think this is good.  Very good.  But I'm not sure if I want to
add something that seems entirely new when we have less than three weeks before
our deadline.  Let's see how things
go.  (BTW, I can also envision a MOVE version of this... but that's messier and
a tangent.)

Anyway, just to clarify...  for a given source resource.... given what is at
it's
intended destination, what action must occur...

\  orig
 \ Dest
 S\
 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
      |               |                  |
      |               |                  |

I've also labeled each box for reference: NC->E, etc.

J.

Received on Thursday, 16 September 1999 13:13:59 UTC