- From: Jim Whitehead <ejw@cse.ucsc.edu>
- Date: Tue, 17 Apr 2001 16:33:06 -0700
- To: <ietf-dav-versioning@w3.org>
In an effort to wrap my brain around all of the autoversioning options, I
developed the following table. I'm hoping some variant of this might make it
into the specification, since I believe it could increase the correctness of
implementations of this feature. I'm also curious to see if I got it all
right (I'm most curious about the checked-in states...) :-)
Abreviations used:
ci = check-in (or checked-in)
co = check-out (or checked-out)
ul = unlock
lk = lock
-> = sequence of operations (1->2)
acoaci = always-checkout-always-checkin
acowuci = always-checkout-when-unlocked-checkin
wlco = when locked checkout
coouakco = checkout-on-update-and-keep-checked-out
Operation "write" is defined to be the state modification action of the
method. For a PUT, write = changing the body. For PROPPATCH, write =
changing the property values.
The table is orgazined as follows:
rows correspond to specific states of the resource (e.g., checked out and
write locked).
columns correspond to specific autoversion options
cells contain descriptions of what happens when specific methods are invoked
under these conditions
acoaci acowuci
ci locked PUT/PROPPATCH PUT/PROPPATCH
co->write->ci co->write
UNLOCK UNLOCK
ul ul
LOCK LOCK
err:423 Locked err:423 Locked
ci unlocked PUT/PROPPATCH PUT/PROPPATCH
co->write->ci co->write->ci
UNLOCK UNLOCK
err:412 err:412
LOCK LOCK
lk lk
co locked PUT/PROPPATCH PUT/PROPPATCH
write write
UNLOCK UNLOCK
ul ci->ul
LOCK LOCK
err:423 Locked err: 423 Locked
co unlocked PUT/PROPPATCH PUT/PROPPATCH
write write
UNLOCK UNLOCK
err:412 err:412
LOCK LOCK
lk lk
wlco coouakco
ci locked PUT/PROPPATCH PUT/PROPPATCH
co->write co->write
UNLOCK UNLOCK
ul ul
LOCK LOCK
err:423 err:423
ci unlocked PUT/PROPPATCH PUT/PROPPATCH
err:DAV:cannot-modify-version- co->write
controlled-content
UNLOCK UNLOCK
err:412 err:412
LOCK LOCK
lk lk
co locked PUT/PROPPATCH PUT/PROPPATCH
write write
UNLOCK UNLOCK
ci->ul ul
LOCK LOCK
err:423 err:423
CHECKIN
ci
co unlocked PUT/PROPPATCH PUT/PROPPATCH
write write
UNLOCK UNLOCK
err:412 err:412
LOCK LOCK
lk lk
CHECKIN
ci
Received on Tuesday, 17 April 2001 19:34:38 UTC