Re: versioning lock

Geoffrey M. Clemm (geoffrey.clemm@rational.com)
Tue, 14 Dec 1999 00:45:20 -0500


Date: Tue, 14 Dec 1999 00:45:20 -0500
Message-Id: <9912140545.AA04797@tantalum>
From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>
To: ietf-dav-versioning@w3.org
In-Reply-To: <85256847.000D19EA.00@D51MTA03.pok.ibm.com> (ccjason@us.ibm.com)
Subject: Re: versioning lock

   From: ccjason@us.ibm.com

      So this is where versioning locks come into play.  A versioning
      lock (induced by any WebDAV lock that protects the locked URL)
      says that revision selection is computed and frozen for the duration
      of the lock for any versioned resource identified by any segment
      of the lock.  In the preceding example, this means that
      "//my-machine/ws/geoff" will select revision "//host/repo/vr/157/rev/5"
      for "//host/repo/vr/157" and revision "//host/repo/vr/197/rev/2"
      for "//host/repo/vr/197" for the duration of the lock, and ignore any
      movement of the label "foo" for those versioned resources.  When the
      lock is removed, normal dynamic revision selection becomes active.

   Sounds good.  Let's sniff around for possible complications.

   - It sounds like a single lock causes several resource to be "protected".
     This upward acting lock is a different than our downward acting depth
     locks.  A new animal and type of behavior to twist one's brain. Do we
     still want to call it a "lock"?

URL locks have always "protected" upwards as well.  You can't
modify certain aspects of the states of all the collections that
are named by prefixes of the locked URL.

   - My understanding is that revisions tend to be immutable.
     Would a lock like this prevent any modifications to those collections
     above?  Or would this somehow just protect specific bindings?

The versioning lock only prevents revision selection from being recomputed.
A collection above still can be changed by checking it out and then
checking it in, but only if these changes satisfy the URL lock.

   - Would the owner of the lock be exempted from the prevention of
     of versioning changes?

No, except by unlocking the resource and then locking it again.
We could have a special "recompute revision selection" method,
but I would defer doing so until we have sufficient experience
to be able to say this is really needed.

   - I take it the effect on a collection affected by multiple of these locks
     would be that the owner exemption mentioned above would only apply if the
     method invoked was invoked by the owner of ALL versioning locks
     affecting the collection.

No owner exemption, so no issue.

   - Might this lock work acceptably with the locking proposal you outlined
   this
     morning?  (More on that later after the rest of the locking list
     comments on that proposal.)

Yes.  Locking a URL that does not currently identify a resource presents
no problem for this scheme.

Cheers,
Geoff