- From: Fay, Chuck <CFay@filenet.com>
- Date: Thu, 19 Apr 2001 12:09:45 -0700
- To: "Clemm, Geoff" <gclemm@rational.com>, ietf-dav-versioning@w3.org
> From: Clemm, Geoff [mailto:gclemm@rational.com]
> Sent: Tuesday, April 17, 2001 8:35 PM
>
> From: Fay, Chuck [mailto:CFay@filenet.com]
>
> Overall, I prefer the previous DAV:auto-version property and its
> settings, because the four possible settings were all well-defined.
> With the proposed property tuple (DAV:auto-checkout,
> DAV:auto-checkin) replacing DAV:auto-version, there appear to be
> thirty-two possible settings of the tuple.
>
> Actually, the four possible values:
> auto-checkout=unlocked-update
> auto-checkout=locked-update
> auto-checkin=unlocked-update
> auto-checkin=locked-update
> are independent of each other, so there are no combinatorics involved
> here.
>
> Also, separating it into two (independent) properties made the
> writeup much simpler (especially when I needed to add a 5'th
> alternative to DAV:auto-version).
I'm not sure I buy this completely, when the behavior of auto-checkin is
defined conditionally based on auto-checkout. ("If a write-locked
version-controlled resource was automatically checked out because the
DAV:auto-checkout property was DAV:locked-update, ...")
> Specific issues with the tuple proposal:
>
> 1. It's not clear to me how the server should behave for some of
> the settings for (DAV:auto-checkout, DAV:auto-checkin), such as
> (DAV:unlocked-update, DAV:locked-update) or (not set,
> DAV:locked-update and/or DAV:unlocked-update).
>
> The behavior of the server with one value is set is independent of its
> behavior when another value is set (which is why there is no
> combinatorics here).
>
> In particular, auto-checkout=unlocked-update means that when you
> update an unlocked (checked-in, version-controlled) resource, it is
> automatically checked out before the update. The value of
> auto-checkin has no effect on this behavior.
>
> Analagously, auto-checkin=locked-update says that when you update a
> locked (checked-in, version-controlled) resource, it is automatically
> checked in if it was automatically checked out for the update. This
> behavior is independent of the value of auto-checkout. Now it is true
> that if auto-checkout=locked-update is not set, then a locked resource
> would never have been automatically checked out, but this doesn't
> change/affect the meaning of auto-checkin=locked-update.
Perhaps the setting of auto-checkout doesn't change the meaning of
auto-checkin, but it does affect the behavior associated with the
auto-checkin settings, as you noted above. That was my underlying concern
about the two-property approach: there are combinations of settings for
auto-checkout and auto-checkin that produce odd results, or are just
dysfunctional (as in the above example). So in that sense, the use of these
two properties is not as well-defined as auto-version was.
I'll leave it up to the list as to whether this is a problem. It can
certainly be avoided by using only combinations that match the old settings
for auto-version. My take on the mapping:
never:
auto-checkout = not set
auto-checkin = not set
always-checkout-always-checkin:
auto-checkout = locked-update, unlocked-update
auto-checkin = locked-update, unlocked-update
always-checkout-when-unlocked-checkin:
auto-checkout = locked-update, unlocked-update
auto-checkin = unlocked-update
when-locked-checkout:
auto-checkout = locked-update
auto-checkin = unlocked-update
always-checkout-manual-checkin:
auto-checkout = locked-update, unlocked-update
auto-checkin = not set
> 3. The description of the checkin-on-unlock operation doesn't seem
> complete.
>
> Geoff Clemm wrote:
> > If a write-locked version-controlled resource was automatically
> > checked out because the DAV:auto-checkout property was
> > DAV:locked-update, a removal of the write lock (such as from an
> > UNLOCK or lock timeout) is automatically preceded by a checkin
> > operation.
>
> Another clause concerning the setting of DAV:auto-checkin seems
> necessary to make the above statement true:
>
> "If a write-locked version-controlled resource was automatically
> checked out because the DAV:auto-checkout property was
> DAV:locked-update, and the DAV:auto-checkin property is
> DAV:unlocked-update and not DAV:locked-update, a subsequent removal
> of the write lock (such as from an UNLOCK or lock timeout) is
> automatically preceded by a checkin operation."
>
> Good point! How about the following phrasing though:
>
> If a write-locked version-controlled resource was automatically
> checked out because the DAV:auto-checkout property was
> DAV:locked-update, and if the resource was still checked-out when the
> write lock is removed (such as from an UNLOCK or lock timeout), then
> the removal of the write lock is automatically preceded by a checkin
> operation.
This doesn't seem sufficient. It would imply that "auto-checkin = not set"
would cause an automatic checkin when the write lock is removed. I don't
think this is what you intended. That's why I included the specific setting
of auto-checkin in my suggested wording.
--Chuck
Received on Thursday, 19 April 2001 15:16:49 UTC