######################################################################## # GROUP DEFINITIONS # These are groups that can be used when stating who has what rights # to modify a revision. Groups may contain other group names, but # those groups must be defined *before* they are used. To use a group, # prefix the group name with a "@". Groups can contain other groups, # but the included group must be defined above. Otherwise, I'd have to # check for recursive group definitions where group "a" contains group # "b" and group "b" contains group "a". # # A special group "@ALL" contains the names of all users. # # The format is: # # group.*: = (|), [...] # # Examples: # group: admins = david, mike # group: developers = bob, carol # group: testers = ralph, ed # group: editors = @admins, @developers, ted, alice # group: everyone = @admins, @developers, @editors, @testers # ######################################################################## ######################################################################## # PROPERTIES # These are non-revisioned properties that files must contain in order # for the commit transaction to be valid. For example, you might # require that all files under the "include" directory contain the # property "svn:keywords". # # The format is: # # prop.*: : = // # OR # prop.*: : = "" # OR # prop.*: : = # # Where: # file_regEx: is a regular expression for the files that must have # this property set. If you want a property for files # only and not for directories, include a [^/]$ at the # end of your file regular expression. Note: This uses # the full Perl regular expression syntax. # property: The name of the property (not a regular expression) # value_regEx: Full Perl Regular expression of the value it needs. # value_string: String value of property. Must be exact match # value_int: Integer value of property. # # Examples: # prop: include/[^/]+[^/]$: svn:keywords = "Id Author" # prop: .*\.(pl|[kc]*sh)$: snv:executable = /.*/ # prop: .*[^/]: svn:eol-style = /^(LF|CRLF|native)$/ # prop: /foo$: myprop = "Must equal this string" # prop: /bar$: lifeUniverseEverything = 42 # prop: .*/: bugtraq:url = "http://myserver/mantis/view.php?id=%BUGID%" # ######################################################################## ######################################################################## # REVISION PROPERTIES # These are revisioned properties that the transavtion must contain in # order for the commit transaction to be valid. For example, you might # require that each transaction contains a property "bugnum" that is # set to the bug number being fixed. # # The format is: # # rev.*: = // # OR # rev.*: = "" # OR # rev.*: = # # Where: # property: The name of the property (not a regular expression) # value_regEx: Full Perl Regular expression of the value it needs. # value_string: String value of property. Must be exact match # value_int: Integer value of property. # # Examples: # rev: defect:bugnum = /^[\d]+$/ # rev: svn:log = /Mantis Defect ID: / # rev: bugtraq:url = "http://myserver/mantis/view.php?id=%BUGID%" # ######################################################################## ######################################################################## # FILE PERMISSIONS # These define who has what permissions on each file or directory. # These are cumulative, so if there is more than one line that defines # a particular permission, the most "permissive" is used. The three # basic permissions, going from least to most permissive are "r" for # "read only", "a" for "add new files/directories only", and "w" for # "full read/write permission". # # The "a" permission is mainly used for tags. With an "a" permission, # a user may add a new tag, but not modify it by checking it out and # committing it. # # A special string expands to the user's id. This is useful in # defining a directory for that user's private use. For exmaple, you # might give users their own directories where they can define tags # and branches. # # Word o' Warning: This is a commit hook. That means the user has # already checked out the file, and has seen the file, and wants to # make changes in the file. Please don't ask how to configure this # hook to prevent users from reading files. That should be handled in # your svnserve or httpd configuration. # # Format is: # # file.*: ::(|), [...] # # Where: # file_regEx: Is a regular expression that represents the files # that you are specifying. To refer exclusively to # directories, append "/$" to the regular expression. # To specify only files, append "[^/]$" to your regular # expression. # permission: The permission you want to place on this" Either an # "a", "w", or "r". Remember this is cumulative and the # user will end up with the most permissive permission # if more than one line specifies the same file. # : Groups to include this setting. # : User to include in this setting. # # Examples: # # file:trunk.*:r:@ALL (All files start off with read only for everyone) # file:foo/:w:bob (Bob can change files under directory foo) # file:.*:w:@admins (Admins may change any file) # # file:tags/.*:r:@ALL (No users can add tags) # file:tags//.*:a:@ALL (Users can add tags to their directories) # file:tags/.*:a:@admins (Admins can add tags anywhere) # # ####Default: Read Only Access on Archive # file:.*:r:@ALL # # ####Users Have Full Permissions on their Private Directories # ####Admin May Write Anywhere # file:^trunk//:w:@ALL file:^trunk/:w:@admin # # ####Users Have Full Permissions on their Private Branches # ####Admin May Write Anywhere # file ^branches//:w:@ALL file ^branches/:w:@admin # # ####Users Have Add Only Access on their Tags # ####Admin May Add Tags Anywhere # file ^tags//:a:@ALL file ^tags/:a:@ALL # ######################################################################## ######################################################################## # FOR EMERGENCY USE ONLY # This line will allow admins to modify the contents of tags. Normally, # tags should be immutible objects that once created will never change. # However, there are times when one more change must be squeezed into # a particular tag. Plus, there are times when older tags must be # removed, renamed, etc. # # In those situations, the admins should remove the pound sign at the # beginning of this line, make their change, then put it right back. # #file:^tags/.*:w:@admin # ########################################################################