summaryrefslogtreecommitdiff
path: root/tools/hook-scripts/svnperms.conf.example
diff options
context:
space:
mode:
Diffstat (limited to 'tools/hook-scripts/svnperms.conf.example')
-rw-r--r--tools/hook-scripts/svnperms.conf.example98
1 files changed, 98 insertions, 0 deletions
diff --git a/tools/hook-scripts/svnperms.conf.example b/tools/hook-scripts/svnperms.conf.example
new file mode 100644
index 0000000..29c895a
--- /dev/null
+++ b/tools/hook-scripts/svnperms.conf.example
@@ -0,0 +1,98 @@
+## Example configuration file for svnperms.py. ##
+
+# $Id: svnperms.conf.example 1028289 2010-10-28 13:20:45Z cmpilato $
+#
+# Multiple global [groups] sections are accepted, but be aware
+# that it's the same as concatenating them all in a single entry.
+# You can also create section specific groups, using a syntax
+# like [sectionname groups].
+#
+[groups]
+group1 = user1 user2 user3
+group2 = user4 user5
+supergroup = @group1 @group2 user6
+
+#
+# Example repository control, showing allowed syntax.
+#
+# - the latest match is what counts
+# - groups are prefixed by "@"
+# - you can use groups and users in the same definition
+# - all permissions may be revoked with ()
+# - line breaks are accepted
+#
+[example1 groups]
+group3 = user9 user10
+
+[example1]
+trunk/.* = *(add,remove,update) @group1,user4,user5(update)
+ user6,user7()
+trunk/.* = user8(add,update)
+tags/[^/]+/ = @group3(add)
+branches/[^/]+/.* = *(add,remove,update)
+
+#
+# One of the most used repository structures, for a single project.
+#
+[example2]
+trunk/.* = *(add,remove,update)
+tags/[^/]+/ = *(add)
+branches/[^/]+/.* = *(add,remove,update)
+
+#
+# Another common structure, expecting a project name inside the repository
+# (like trunk/myproject/ and tags/myproject/). In this example, only admins
+# are allowed to create projects, and there are project specific access
+# lists.
+#
+[example3 groups]
+admins = john
+project1 = user1 user2
+project2 = user3 user4
+
+[example3]
+trunk/[^/]+/ = @admins(add,remove)
+trunk/project1/.+ = @project1(add,remove,update)
+trunk/project2/.+ = @project2(add,remove,update)
+tags/[^/]+/ = @admins(add,remove)
+tags/project1/[^/]+/ = @project1(add,remove)
+tags/project2/[^/]+/ = @project2(add,remove)
+branches/[^/]+/ = @admins(add,remove)
+branches/project1/[^/]+/.* = @project1(add,remove,update)
+branches/project2/[^/]+/.* = @project2(add,remove,update)
+
+#
+# A more complex structure, as defined in the following URL:
+#
+# http://moin.conectiva.com.br/RepositorySystem
+#
+[example4 groups]
+admins = user1 user2
+updaters = user3
+
+[example4]
+snapshot/[^/]+/(current/(SPECS/|SOURCES/)?)? = *(add)
+snapshot/[^/]+/ = @admins(add,remove)
+snapshot/[^/]+/current/SPECS/[^/]+\.spec = *(add,remove,update)
+snapshot/[^/]+/current/SOURCES/[^/]+ = *(add,remove,update)
+snapshot/[^/]+/releases/[^/]+/([^/+]/)? = autouser(add)
+snapshot/[^/]+/pristine/ = autouser(add,remove)
+branches/[^/]+/.* = *(add,remove,update)
+releases/[^/]+/ = @admins(add)
+tags/[^/]+/ = *(add,remove)
+updates/[^/]+/[^/]+/(current/(SPECS/|SOURCES/)?)? = @updaters,autouser(add)
+updates/[^/]+/[^/]+/current/SPECS/[^/]+\.spec = @updaters,autouser(add,update)
+updates/[^/]+/[^/]+/current/SOURCES/[^/]+ = @updaters,autouser(add,remove,update)
+updates/[^/]+/[^/]+/releases/.* = autouser(add)
+updates/[^/]+/[^/]+/pristine/ = autouser(add,remove)
+
+#
+# Sections can inherit settings from previously defined sections, using
+# the "extends" keyword in the section declaration. In this example,
+# the [example5] section inherits all the settings from [example2], and
+# adds a new setting for a releases directory which behaves like the
+# tags directory.
+#
+[example5 extends example2]
+releases/[^/]+/ = *(add)
+