Re: Comments on versioning protocol

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

  • Next message: Tim Ellison OTT: "RE: More recent version of the draft?"

    Date: Fri, 7 Jan 2000 10:31:24 -0500
    Message-Id: <10001071531.AA19582@tantalum>
    From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>
    To: ietf-dav-versioning@w3.org
    Subject: Re: Comments on versioning protocol
    
       From: "Vasta, John" <jvasta@rational.com>
    
       since only unversioned collections can contain unversioned
       resources, then all parent collections of any unversioned resource must be
       unversioned.
    
    Yes.
    
       So how do you version an unversioned resource?
    
    Apply a CHECKOUT request to it.
    
       If you version
       the parent collection first, then you have a versioned collection containing
       unversioned resources. But you cannot version the children first, since they
       are in an unversioned collection.
    
    You can have versioned resoures in unversioned collections (just apply a
    CHECKOUT request to it).  When you initially create a resource with PUT,
    MKCOL, etc. in an unversioned collection, it is unversioned, but then
    when you apply a CHECKOUT to it, it becomes versioned.
    
       One way around this would be to say that versioning an unversioned
       collection is always treated as an infinite depth operation. Is that what
       was intended?
    
    I'd rather have the client iterate through the tree, so that it can query
    the user on problems/issues (locked resource, unversionable resources),
    rather than having the server try to guess what to do and whether to
    continue or not.
    
       >    5.1 Shouldn't a precondition of MKRESOURCE for 
       > versioned-resources be that
       >    the parent collection is checked out?
       > 
       > I'm tempted at the moment to just say that CHECKOUT is 
       > *always* used to
       > created versioned resources (and not MKRESOURCE).  Does anyone object?
    
       It seems strange to me to have a general MKRESOURCE method that cannot be
       applied to versioned resources, and that you can CHECKOUT a null resource.
       Why not just apply the same versioned-resource-creation semantics to
       MKRESOURCE as to any other resource creation method?
    
    A versioned resource has two types: DAV:versioned-resourcetype
    and the resource type of its revisions.  In many cases, a
    server can't create a versioned resource until it knows the
    resource type of its revisions.  We could add some special
    arguments to the MKRESOURCE body to indicate the revision-resourcetype,
    but it is simpler to just say that you always use CHECKOUT
    to put something under version control.
    
    Cheers,
    Geoff