blob: 294146c4eb5d9d958f419d402831671f8287765f [file] [log] [blame]
# This is a sample configuration file for commit-access-control.pl.
#
# $Id$
#
# This file uses the Windows ini style, where the file consists of a
# number of sections, each section starts with a unique section name
# in square brackets. Parameters in each section are specified as
# Name = Value. Any spaces around the equal sign will be ignored. If
# there are multiple sections with exactly the same section name, then
# the parameters in those sections will be added together to produce
# one section with cumulative parameters.
#
# The commit-access-control.pl script reads these sections in order,
# so later sections may overwrite permissions granted or removed in
# previous sections.
#
# Each section has three valid parameters. Any other parameters are
# ignored.
# access = (read-only|read-write)
#
# This parameter is a required parameter. Valid values are
# `read-only' and `read-write'.
#
# The access rights to apply to modified files and directories
# that match the `match' regular expression described later on.
#
# match = PERL_REGEX
#
# This parameter is a required parameter and its value is a Perl
# regular expression.
#
# To help users that automatically write regular expressions that
# match the beginning of absolute paths using ^/, the script
# removes the / character because subversion paths, while they
# start at the root level, do not begin with a /.
#
# users = username1 [username2 [username3 [username4 ...]]]
# or
# users = username1 [username2]
# users = username3 username4
#
# This parameter is optional. The usernames listed here must be
# exact usernames. There is no regular expression matching for
# usernames. You may specify all the usernames that apply on one
# line or split the names up on multiple lines.
#
# The access rights from `access' are applied to ALL modified
# paths that match the `match' regular expression only if NO
# usernames are specified in the section or if one of the listed
# usernames matches the author of the commit.
#
# By default, because you're using commit-access-control.pl in the
# first place to protect your repository, the script sets the
# permissions to all files and directories in the repository to
# read-only, so if you want to open up portions of the repository,
# you'll need to edit this file.
#
# NOTE: NEVER GIVE DIFFERENT SECTIONS THE SAME SECTION NAME, OTHERWISE
# THE PARAMETERS FOR THOSE SECTIONS WILL BE MERGED TOGETHER INTO ONE
# SECTION AND YOUR SECURITY MAY BE COMPROMISED.
[Make everything read-only for all users]
match = .*
access = read-only
[Make project1 read-write for users Jane and Joe]
match = ^(branches|tags|trunk)/project1
users = jane joe
access = read-write
[However, we don't trust Joe with project1's Makefile]
match = ^(branches|tags|trunk)/project1/Makefile
users = joe
access = read-only