|
From: Fred L. D. Jr. <fd...@ac...> - 2003-07-14 16:52:03
|
I've just added a new script to the cvs-syncmail CVS trunk: branchctl.
This script controls the use of branches within a CVS repository.
For each branch (including the trunk), two controls are available:
- whether the branch is open for commits, and
- whether commits involving that branch and any other should be
permitted.
Both default to true since that's the normal CVS behavior.
Much of this code is based on the new-config-branch version of
syncmail, and allowed portions of that to be tested in a simpler
environment.
The configuration file should be present in the CSVROOT administrative
directory alongside the script. The configuration files have the same
structure as the strawman configuration file for syncmail, but
different keys are checked:
open
Indicates whether checkins are allowed. The value may be "true"
or "false"; the default is "true".
cross-branch-commits
Indicates whether a single commit may span multiple branches. The
implementation only checks this for a single directory at a time;
commits that affect one branch in one directory and another branch
in a separate directory are not (yet) detected. The value may be
"true" or "false"; the default is "true".
An example configuration may look like this:
----------------------------------------
[general]
open = true
cross-branch-commits = false
[branch unmaintained-maintenance-branch]
; we don't like this branch any more
open = false
----------------------------------------
This configuration data can co-exist in the configuration file for the
new version of syncmail that's currently in development, so all your
branch-control configuration can be in one place. The default
configuration file names are different for the two scripts; I'll
suggest appropriate usage would be to create a single file and name it
explicitly using the --config option for each script.
This script may provide a good foundation for additional forms of
access control for CVS repositories as well.
-Fred
--
Fred L. Drake, Jr. <fdrake at acm.org>
PythonLabs at Zope Corporation
|