RE: Table for autoversioning

The table looks correct to me, in terms of the old DAV:auto-version
terminology.  I support Jim's suggestion that such a table go into the
specification, because it leaves much less room for misinterpretation and
error than a prose-only expression of the semantics.  Geoff has done a
wonderful job of expressing the semantics in a concise set of sentences, but
it's almost like solving a puzzle to wring out of those sentences the
semantics spelled out in Jim's table.  Rather than requiring each
implementor to solve the puzzle, and possibly end up with an incorrect
solution, I like the idea of spelling out the semantics in a table.  As I
noted in my earlier message, I also prefer the old terminology.

--Chuck Fay 
FileNET Corporation, 3565 Harbor Blvd., Costa Mesa, CA 92626 
phone:  (714) 327-3513, fax:  (714) 327-5076, email:  cfay@filenet.com

> -----Original Message-----
> From: Jim Whitehead [mailto:ejw@cse.ucsc.edu]
> Sent: Tuesday, April 17, 2001 4:33 PM
> To: ietf-dav-versioning@w3.org
> Subject: Table for autoversioning
> 
> 
> 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 21:47:10 UTC