| ## Example configuration file for svnperms.py. ## |
| |
| # $Id$ |
| # |
| # 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) |
| |