With deference to David's work, I'd like to try to straighten out our nomenclature here. I don't want to say that just because existing version control products use this terminology then the web based versioning must as well. But at least _I_ would like to be understood. Many products on the market are derived from RCS or SCCS (or are in fact RCS or SCCS), and share their terminology. I'm adding our own product (Perforce) because its terminology is a superset of the others. Just to get going, here are the states a VC client can be in w.r.t. a file/document, and who supports those states: A) Doesn't have the document in its possesion. o ClearCase doesn't state A, because with its virtual filesystem clients are already soaking the filespace of the repository. B) Has the document, but not the permission to change it. o CVS has no state B, because if you have a file you can change it. C) Has the document, with the permission to change it. o RCS and SCCS have no state C -- if you have permission to change a file, you also have the exclusive lock on it (state D). D) Has the document, the permission to change it, and the lock on the copy in the repository. This client has the right of way to create the next revision in the repository. o CVS has no state D, because it doesn't support exclusive locks. The transitions: A->B ClearCase: none (no state A) CVS: none (no state B) RCS: "unreserved checkout" SCCS: "get" Perforce: "get" B->C ClearCase: "unreserved checkout". CVS: none (no state B) RCS: none (no state C) SCCS: none (no state C) Perforce: "edit" A->C ClearCase: none (no state A) CVS: "checkout" RCS: none (no state C) SCCS: none (no state C) Perforce: "get" + "edit" C->D ClearCase: "reserved checkout" CVS: none (no state D) RCS: none (no state C) SCCS: none (no state C) Perforce: "lock" B->D ClearCase: "reserved checkout" CVS: none (no state D) RCS: "reserved checkout" SCCS: "edit" Perforce: "edit" + "lock" As you can see, it's a mess: ClearCase and RCS use the same term for two entirely different transitions. Basically, the word "checkout" can mean any progression from one state to the next, depending on which product you're using. Here's what I propose, based on a seat-of-the-pants understanding of which way the terminology is going: A->B Proposed: "GET" (HTTP's, mind you) B->C Proposed: "CHECKOUT" A->C Proposed: "CHECKOUT" C->D Proposed: "LOCK" B->D Proposed: "CHECKOUT" + "LOCK" N.B. that "CHECKOUT" == "GET for EDIT", previously used. I'm not suggesting that these are new HTTP verbs, but rather that we use these terms when hashing out our other ideas. Comments? Christopher