Re: DAV:revisions property for a workspace resource

From: Geoffrey M. Clemm (geoffrey.clemm@rational.com)
Date: Fri, Apr 14 2000

  • 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