Re: Some configuration management scenarios
Geoffrey M. Clemm (gclemm@tantalum.atria.com)
Wed, 24 Feb 1999 17:09:16 -0500
Date: Wed, 24 Feb 1999 17:09:16 -0500
Message-Id: <9902242209.AA05977@tantalum>
From: "Geoffrey M. Clemm" <gclemm@tantalum.atria.com>
To: Bradley.Sergeant@merant.com
Cc: ietf-dav-versioning@w3.org
In-Reply-To: <9901249198.AA919897271@SMTPGwy.MERANT.com>
Subject: Re: Some configuration management scenarios
From: Bradley.Sergeant@merant.com
Ok, now I see how your scenario 3 will work. We don't need P1R1, it
only serves to indicate a change in the P1 project's RSR to run off a
fixed configuration rather than a latest label. Make sense?
Yes, exactly.
Also, if we remove the #2 buildin selection rule in workspaces and
rely on the RSR rule then my other concerns go away and things get
simpler.
Great!
Thanks for clearing this up.
Here's what I've currently got for the amended CM scenario list:
-----------------------
(1) There is a project, P1, that produces a series of configurations
(there is an identified workspace, Workspace-P1, that produces
new configurations for P1). There can only be one checkout of a
versioned-resource at any time, and each developer wants to see the
same resources, including working-resources, as every other developer
(every developer uses Workspace-P1).
(2) There is a project, P1, that produces a series of configurations.
Each developer on the P1 project wants to work on his activity in
isolation (in a personal workspace), and will merge the completed
activity into the project (into Workspace-P1) when it is ready to be
seen by the other developers.
(2.1) New activities must be based on the current state of the project
(the contents of Workspace-P1).
(2.1-B) A branch-based system is used. All P1 developers are
required to work on the same branch (the DAV:branch property of
all P1 activities are set to be "branch-P1"). This ensures that
only a single branch exists for all versioned resources, and
requires a "merge" before CHECKIN for any resources that have
been checked-out in parallel.
(2.2) New activities must be based on the most recent configuration of
P1 (the most recent configuration produced by Workspace-P1), rather
than the current state of P1.
(2.3) To minimize merge conflicts when merging into Workspace-P1,
a developer merges the latest configuration from Workspace-P1
into his personal workspace before merging his activity into Workspace-P1.
(3) At some point project P1 produces a configuration C1. Project P2
is now started, based on C1. A workspace, Workspace-P2, is created to
generate the series of configurations for P2, and Workspace-P1 is
renamed Workspace-P1-C1. An activity is either done for the P1-C1
project (performed in or merged into Workspace-P1-C1) or for the P2
project (performed in or merged into Workspace-P2).
(3.1) Any bug-fix activities for P1-C1 should be incorporated into the P2
project (be merged into Workspace-P2).
(3.1-B) A branch-based system is used. All P1 activities have their
DAV:branch property set to branch-main. After P1 produces a
particular configuration, C1 (e.g. corresponding to a product
release), a new project, P2, is started based on C1.
All P2 activities have their DAV:branch property set to branch-main,
and all P1 activities now have their DAV:secondary-branch property
set to branch-P1.
The effect of the DAV:secondary-branch is that this branch is used
when a revision is checked out that already has a branch-main successor.
Then when a P1 activity is merged into Workspace-P2, only versioned
resources that have a branch-P1 branch need to be merged (the others
were effectively automatically merged on checkin).