Re: DAV:baselines

Geoffrey M. Clemm (geoffrey.clemm@rational.com)
Mon, 20 Dec 1999 16:50:08 -0500


Date: Mon, 20 Dec 1999 16:50:08 -0500
Message-Id: <9912202150.AA07768@tantalum>
From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>
To: ietf-dav-versioning@w3.org
In-Reply-To: <8525684D.00505FBE.00@d54mta03.raleigh.ibm.com>
Subject: Re: DAV:baselines


   From: jamsden@us.ibm.com

   I think this is great.

I thought you might approve (:-).

   However, as I recall, the reason you wanted to
   distinguish baselines from versioned configurations is that a versioned
   configuration could be checked out and modified in such a way that it was
   not a baseline of a versioned collection any longer.  We also said that a
   baseline wasn't a subclass of a configuration because it didn't have the
   behavior for adding and removing members. 

Yup, those are the two things I didn't like.  But we can just say:

"The contents of a checked-out DAV:baselines configuration tracks the
contents of the workspace into which it was checked out.  Attempts
to explicitly add or delete members from such a checked out configuration
MUST fail."

   However, I think we could stick
   with this definition, and just refine the behavior for adding and removing
   members to be private implementations of the create accessor for a baseline
   (please excuse the OO speak, but you get my point).

Yup.  This would violate the "substitutability" of a baseline as a
configuration, but life goes on (:-).

   Now we have a new
   DAV:resourcetype called DAV:baseline which is a DAV:configuration with the
   additional behavior of how baselines are created, their semantics, and a
   refinement of the add/remove member that makes them private and used to
   create the baseline. Make sense?

We can just use standard checkin/checkout to create baselines (since
they are now just revisions of a versioned configuration).  We just need
to "turn off" add/remove member, and replace it with "automatic workspace
tracking".  Even Eiffel let's a class hide features from a parent, so
there's plenty of precedent for doing so.

Cheers,
Geoff

   "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>@w3.org on 12/19/99

   In the latest version of the protocol (deltav-01), I changed the
   DAV:baselines property of a versioned collection from being a
   versioned configuration to being a collection of revisions.  Since
   we are removing property collections, and since at least a couple
   of folks objected to this change anyway, I'm planning on bringing
   back the old definition, i.e. that DAV:baselines identifies a
   versioned configuration.

   Any objections?