Date: Fri, 14 Apr 2000 12:25:16 -0400 (EDT) Message-Id: <200004141625.MAA15320@tantalum.atria.com> From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com> To: ietf-dav-versioning@w3.org Subject: Re: DAV:revisions property for a workspace resource From: Edgar Schwarz <Edgar.Schwarz@marconicomms.com> ... I feel a little bit confused about the talk about activities and workspaces. A workspace is a "context". It selects what revision or working resource of that versioned resource you will see when you access that versioned resource. workspace. An activity is a "delta". It captures a set of changes that could be applied in another context. An activity is also a "line of descent". It captures a sequence of changes to the same resource. In either view, it captures a sequence of changes. Finally, a collection is an object that gives a "binding name" to each of a particular set of objects. These are three very different concepts, with distinct properties and semantics. IMHO we can achieve already a lot by not introducing many new terms. If we call a revision of a collection a configuration we already have a lot of options. The most recent spec no longer uses the term "configuration", and we don't have any special name for a revision of a versioned collection (i.e. it is just called "a revision of a versioned collection"). If I want to work on a set of files I just do a checkout on a versioned collection which contains them. The term "set of files" is ambiguous in a versioning context. Do you mean a specific set of revisions, or do you mean a set of versioned resources? These are two very different sets. The first set (set of revisions) we call a "workspace". A workspace can either be unversioned (in which case you just work on it ... no need to check it out), or it can be versioned, in which case you can check out a particular workspace revision. Note: we currently do have a special term for a workspace revision: "baseline". The second set (set of versioned resources) we model as a "versioned collection". If you check out a versioned collection, you get a particular set of (named) versioned resources. When I'm finished I just checkin all the files and collections I worked on. Sounds like you are talking about a workspace (i.e. a set of revisions), and *not* a versioned collection (i.e. a set of versioned resources each of which is identified by a distinct binding-name). I don't say that workspaces and activities aren't needed for certain stuff. But versionend collections are a more basic principle because it's just an extension of versioning from atomic resources to collections. Correctly modeling the distinction between "a set of versioned resources" and "a set of revisions" is one of the key challenges of the versioning protocol. Although it is tempting to try to ignore this distinction, the result is ambiguity, since the semantic difference between a set of revisions and a set of versioned resources is crucial. Then I have another question (Sorry if it was already discussed, but the traffic in the mailing list is so high that I can't read all): I edit a big file, only change a couple of bytes and do a checkin. Can I just send some delta information to the server instead of using all the bandwidth for my big file ? Note that you don't send your updates back with a CHECKIN request, but rather with a PUT request. The CHECKIN request just tells the server to remember the current state of the resource as a new revision. There have been protocol's designed to address this concern, but since this is not a versioning issue (i.e. it's just about optimizing the PUT operation), it is not one that is addressed by the versioning protocol. Cheers, Geoff