Re: Naive question

From: Jim Amsden/Raleigh/IBM (jamsden@us.ibm.com)
Date: Tue, Sep 12 2000

  • Next message: Geoffrey M. Clemm: "Re: Naive question"

    To: ietf-dav-versioning@w3.org
    Message-ID: <OF3CA0C14E.0EF4A683-ON85256958.00728F96@raleigh.ibm.com>
    From: "Jim Amsden/Raleigh/IBM" <jamsden@us.ibm.com>
    Date: Tue, 12 Sep 2000 16:55:00 -0400
    Subject: Re: Naive question
    
    Geoff,
    I think there are some problems with what you describe below. Any 
    operation on a version selector should be redirected to the target version 
    including PROPFIND/PROPPATCH regardless if a Target-Selector header was 
    specified or not. The Target-Selector header is only there to override the 
    DAV:target of the version selector. We don't want different semantics 
    depending on how you specified you version. Version selectors are special 
    resources, not bindings (too bad, but they aren't), so we can define the 
    semantics of PROPFIND/PROPPATCH on a version selector to return both its 
    properties and the properties of its target version. There should be no 
    overlap, so no properties will be hidden.
    
    I think this is consistent with the definition of target in the core 
    versioning section.
    
    
    
       From: Tim_Ellison@uk.ibm.com
    
       How do you refer to a version selector rather than the version it 
    selects?
       (i.e. to PROPFIND/PROPPATCH it's properties)
    
    
    A version selector has a URL which is different from the URL
    of any particular version.  When you do a PROPFIND/PROPPATCH on a
    version selector URL, you operate on the properties of the version
    selector.  When you do a PROPFIND/PROPPATCH on a version URL,
    you operate on the properties of the version.
    
    Note though that all the dead properties of a version selector
    correspond (i.e. have the same value) as those of the version that
    is that target of that version selector.
    
    Further note that if you use a Target-Selector header with a
    PROPFIND/PROPPATCH request, you operate on the properties of
    the selected version, and *not* on the properties of the
    version selector.
    
    
       From: "Jim Amsden/Raleigh/IBM" <jamsden@us.ibm.com>
    
       You can't. PROPFIND returns the properties of both.
    
    PROPFIND returns the properties of whatever resource you
    applied it to.  In particular, the live properties of a version
    selector can be different from those of its target version.
    A while back, we modeled version selectors as a "redirector"
    that redirected methods to the version, but that was a
    good while ago, before we looked carefully at modeling
    versioned collections.
    
       Note that we can
       create version selectors with VERSION-CONTROL, but DELETE doesn't
       actually say you can delete them.
    
    You can use DELETE to delete a version selector.
    
       DELETE of a version is undefined.
    
    That is correct, but DELETE of a version selector is defined.
    
       DELETE on a version selector should just delete the version selector,
       but then we have a special case where the  version selector is accessed
       as a resource itself.
    
    A version selector is always accessed as a resource itself.
    A Target-Selector header can be used to redirect a request
    from a version selector to the specified version, but without
    a Target-Selector header, a method applied to a version selector
    URL is applied to the version selector resource.
    
       Remember the BIND/DELETE/UNBIND arguments? Geoff?
    
    Yes, we used to need this kind of argument when we modeled
    version selectors as redirectors, but we don't need them
    any more, now that we don't model them that way anymore.
    
    Cheers,
    Geoff