- From: <Tim_Ellison@uk.ibm.com>
- Date: Fri, 1 Jun 2001 10:42:33 +0100
- To: "DeltaV" <ietf-dav-versioning@w3.org>
"Lisa Dusseault" <lisa@xythos.com> wrote:
> Geoff said:
> >
> > I agree with Tim's responses. To make sure that nobody misunderstands
> > the semantics of the method preconditions and postconditions, I propose
> > to modify section 1.6 to read as follows:
> >
> ...
> >
> > Lisa: Does this address your concern?
>
>
> It's an improvement in the definition of post/pre-conditions, certainly.
> There are still a couple of issues remaining:
>
> 1. By having (DAV:must-be-root-version) as a postcondition, you're
> preventing an implementation from deleting the last remaining version
> from a version history. I assume this is your intent? Like so many
> other things, it must be inferred rather than finding it stated in
> the text. *sigh*
The entire postcondition statement is:
(DAV:must-be-root-version): If the root version of a version
history is deleted, there MUST be another version that is the
new root version, i.e. that is the ancestor of all other versions
in the version history.
I think it is easily implied that you cannot therefore delete *all*
versions of a version history and satisfy this postcondition; but I have no
objection to adding to this statement if you really think it needs it.
> 2. I don't think the issue of a version-controlled-resource with zero
> versions is sufficiently addressed. For your convenience, here's the
> section from 2518:
>
> A write locked null resource, referred to as a lock-null resource,
> MUST respond with a 404 (Not Found) or 405 (Method Not Allowed) to
> any HTTP/1.1 or DAV methods except for PUT, MKCOL, OPTIONS, PROPFIND,
> LOCK, and UNLOCK. A lock-null resource MUST appear as a member of
> its parent collection. Additionally the lock-null resource MUST have
> defined on it all mandatory DAV properties. Most of these
> properties, such as all the get* properties, will have no value as a
> lock-null resource does not support the GET method. Lock-Null
> resources MUST have defined values for lockdiscovery and
> supportedlock properties.
>
> Until a method such as PUT or MKCOL is successfully executed on the
> lock-null resource the resource MUST stay in the lock-null state.
> However, once a PUT or MKCOL is successfully executed on a lock-null
> resource the resource ceases to be in the lock-null state.
>
> A direct read of this paragraph combined with deltaV draft 15 (and your
> implication) would indicate that you can't issue a VERSION-CONTROL method
> on a lock-null resource. That's bogus.
No, that's great!<g> The lock null resource is a nonce concept that is not
required by Delta-V.
Reading the quoted paragraph with Delta-V gives (IMHO) the correct
impression that versioning operations are not allowed on lock null
resources.
> A "write locked null resource"
> is there so that the creator can do all the write operations and state
> changes they need before making the resource visible to everybody.
This isn't true since you cannot PROPPATCH a lock null resource, and as
soon as the first PUT/MKCOL succeeds it is no longer in the lock-null state
-- so there really is no set of state changes that can be applied to a lock
null resource.
I'm not sure what you mean by "before making the resource visible to
everybody". The resource name is a member of the parent collection, so
that is 'visible'. It has visible mandatory DAV properties (including
those defined by Delta-V for all DAV resources). But until the initial
PUT/MKCOL there is no content/are no members.
Are you are suggesting that the lock null resource should be a versionable
resource?
Are you suggesting that the lock null resource can be brought under version
control before the initial PUT/MKCOL? Delta-V allows for the resource to
be brought under version control as part of the initial PUT/MKCOL; and if
it is brought under version control _after_ the initial PUT/MKCOL then the
resource is no longer a lock null resource.
> So, I suggest that VERSION-CONTROL (and perhaps other methods like
CHECKOUT,
> MKWORKSPACE...) should be explicitly allowed by DeltaV to be done on
write
> locked null resources, and that the spec define a precondition that can
be
> returned if the server decides not to allow operations on write-lock
> resources.
I see no argument for VERSION-CONTROL or CHECKOUT, but MKWORKSPACE is a
more likely candidate since it is akin to MKCOL. This would obviously
require a modification to RFC2518's statement that the lock null resource
MUST fail methods that are not in the named list.
Tim
Received on Friday, 1 June 2001 05:49:58 UTC