Spackle Man Page

SourceForge

Last updated: Thursday, 1 January 1970 00:00 00000


Generated-and-frobbed Man Page

Below is the HTMLised version of the spackle.karma man page which accompanies the package. It was generated from the actual man page source, then heavily modified by hand to make it into valid and usable HTML. No content was changed during the modification.


Content-type: text/html Manpage of spackle.karma

spackle.karma

Section: Utilities (5)
Updated: August 2002
Index Return to Main Contents
 

NAME

avail, karma, ... - the Spackle karma file  

DESCRIPTION

The Spackle karma file lives in the CVSROOT directory of a Spackle-enabled CVS repository, and is used to determine whether users may commit files. It is accessed through the SpackleConf Perl module (q.v.), and is evaluated every time a commit is attempted.

Blank lines and those beginning with '#' (possibly preceded by whitespace) are considered comments and ignored. Any other line not beginning with "avail", "unavail", or "group" will result in the line being skipped and an error being displayed.

Each non-comment line consists of three fields delimited by vertical bar characters ('|'). The first field is a keyword that determines how the other sections are interpreted:

avail
Identifies users who explicitly have commit access. The second field is a comma-separated list of names, and the third field is a comma-separated list of modules (relative to the CVSROOT) to which commit access is being granted.
group
Defines and names a collection of users. The second field specifies the group name, and the third field is the comma-separated list of members of the group. A group may be defined multiple times; each new definition completely replaces any existing on, and references to the group expand to the most recent definition.
unavail
Identical to the avail syntax except that it identifies users who are explicitly being denied commit access.

The keyword field is case-insensitive; all other fields are case-sensitive. Wildcards and regular expressions are not supported.  

USERNAME INTERPOLATION

Usernames may be either simple words, like root or rjones, or they may be group references of the form :groupname. Group references are expanded when they are encountered, so a particular group name may expand to different sets of users depending upon where it occurs in the file. Group references may appear anywhere usernames may -- including in group definition lines. For example:


group|u1|usera,userb
group|u2|userc
group|u1|:u1,:u2

When the last line is processed, group u1 will consist of usera,userb,userc.  

ACCESS LINES

Lines beginning with avail or unavail define access to portions of the repository, so they're called access lines.  

Omitted Fields


The avail and unavail lines treat missing fields as matching all values. For instance, the simple line

unavail

denies commit access to all users, to all modules. Similarly,

avail||/sandbox

grants commit access to the /sandbox module to all users.  

Username Matching


Usernames in an access line are compared against both that supplied as part of the commit and that under which CVS is running. For this reason, be very careful about listing the server's username in the karma file when your repository is accessed through pserver.

Usernames must match exactly, and are case-sensitive. No partial matches are performed (e.g., steve and steven will not match).  

Module Matching


Values in an access line's module list are paths relative to and rooted at the CVSROOT. (That is, the subdirectory bar under the module foo would appear in the module field as /foo/bar.) They may be directory names or file names. Non-blank module fields are matched against the items being committed. If the top-level CVS module into which the commit is being attempted appears in an access line's module field, or is a proper descendent of one of those values, the line matches. If it doesn't, but all of the files being committed appear in the module field, it also matches. If neither of these conditions is true the line is considered inapplicable to the commit and is ignored.

In other words, using directory names in the module field allows committing of any file (or group of files in a single commit) in the tree below that directory. If individual file names are used in the module field, then files must be committed individually or all files specified in a single commit must all appear in the module field a single karma line.  

PROCESSING

All non-comment lines in the karma file are processed sequentially. Each group and access line is evaluated as it is encountered. Essentially, karma process tracks the status of a bit: matching avail lines turn the bit on, and unavail lines that match turn it off. If the bit is set when all of the lines have been processed, the user is allowed to perform the commit; otherwise, a message is displayed and the commit is aborted.

The bit is set before the karma scan begins.  

EXAMPLES

(Text from the ';;' rightward may not appear in the file.)  

Example 1:

unavail ;; Make whole repository ;; unavailable by default. avail|dgg ;; Except for user "dgg". avail|fred, john|bin/ls ;; Except when "fred" or ;; "john" commit to the ;; module whose repository ;; is "bin/ls"
 

Example 2:

unavail group|developers|joe,steve,elaine group|techwriters|debbi,george,louise avail|:developers|/projx-code avail|:developers,:techwriters|/projx-docs

Commit access to files in the /projx-docs module is granted to everyone in the developers and techwriters groups -- namely, to joe,steve,elaine,debbi,george,louise.  

Example 3:

avail unavail|chris|/the-code

This permits everyone to commit to any module in the repository -- except Chris, who isn't allowed to commit code (perhaps due to demonstrations of poor judgement in the past).  

RESTRICTIONS

Wildcards and regular expressions are not supported.  

AUTHOR

Rodent of Unusual Size <coar@Apache.Org>  

SEE ALSO

spackle(5), spackle.conf(5).

For more information, see the Spackle project Web site at <URL: http://Spackle.SourceForge.Net/ >.


 

Index

NAME
DESCRIPTION
USERNAME INTERPOLATION
ACCESS LINES
Omitted Fields
Username Matching
Module Matching
PROCESSING
EXAMPLES
Example 1:
Example 2:
Example 3:
RESTRICTIONS
AUTHOR
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 18:03:55 GMT, August 17, 2002
coar