Next message: Geoffrey M. Clemm: "Re: [Moderator Action] draft-ietf-deltav-versioning-04.8"
Date: Sun, 25 Jun 2000 11:45:42 -0400 (EDT)
Message-Id: <200006251545.LAA02117@tantalum.atria.com>
From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>
To: ietf-dav-versioning@w3.org
Subject: modeling RCS style branches with activities
An RCS style branch is limited to a single versioned resource
(i.e. you can't use the "same" branch in multiple versioned resources),
but otherwise it has the same behavior as an activity (i.e. single
line of descent, the ability to "reserve" a branch with a checkout,
etc.).
The only obstacle to modeling RCS style branches is that currently
we support a "MKACTIVITY" that is independent of any versioned
resource. If instead, we allowed a CHECKOUT to specify that
a "new" activity should be created for this checkout, then the
protocol could be used for RCS style branches as well.
In particular, currently we allow the CHECKOUT request body to be:
<D:checkout>
<D:activity>
<D:href> /some/activity/url </D:href>
</D:activity>
</D:checkout>
In order to create a new activity, one would say:
<D:checkout>
<D:activity>
<D:new/>
</D:activity>
</D:checkout>
The URL for the new activity could then be obtained from the
DAV:activity property of the new revision.
The rule for determing the activity of a new revision would be:
- the activity specified in the CHECKOUT; else
- the activity specified by the DAV:current-activity of the workspace; else
- the activity of the revision being checked out
Then a "CHECKOUT" that specified no activity would succeed against any
versioning server, and a "CHECKOUT" with activity=DAV:new would
succeed against any server that supported at least RCS level
branching.
There are also "change-set" based servers that allow you to create
a new change set with a checkin, but do not allow you to create a
new change-set independent of any versioned resource. So I propose
that we replace the MKACTIVITY method with an activity=DAV:new argument
to the CHECKOUT method. This provides compatibility with more servers,
and makes the protocol simpler (just one way to create a new activity).
Cheers,
Geoff