Next message: jamsden@us.ibm.com: "Re: working resource DAV:merge-state property?"
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