F=rc configuring gitolite's advanced features -- the .gitolite.rc file

This is the documentation for the contents of the "rc" file ($HOME/.gitolite.rc) on the server. Until now this documentation was inline, within the rc file itself, but it has grown too large, too unwieldy, and too difficult to grok for people new to gitolite.

The documentation follows approximately the same order as the sample variables in the (now reorganised) example "rc" file.

[Note: in perl, there is no actual boolean. The undefined value, the number '0', and the empty string, are all 'false'. Everything else is 'true'. It is thus common to use just 0/1 for false/true].

variables that should not be touched at all

The first section does not need too much elaboration. Let's just say bad things happen if you change them.

most often used/changed variables

variables with an efficiency/performance impact

#rcsecurity variables with a security impact

IMPORTANT NOTE

This section describes variables that, if not carefully used, can cause security issues. It also includes variables which I personally do not use and do not have the ability to test thoroughly

Using non-default value for these variables voids the security reward in the README. This does not mean they are less important or that I will ignore problems; it just means my ability to catch problems may be limited by my test suite, my actual production use, my time, and sometimes (LDAP comes to mind) even my skill or resources available to me, and that therefore I depend on feedback from my users to find or fix issues.

less used/changed variables

rarely changed variables

constants that aren't!

The source file src/gitolite_rc.pm defines a few "constants", for example:

$R_COMMANDS=qr/^(git[ -]upload-pack|git[ -]upload-archive)$/;

Let's say you want to disallow the archive feature, you would need to change this constant.

As of this version, you can now change these "constants" also, simply by defining a new value for any or all of them in your ~/.gitolite.rc file.

If you use this to relax some of the patterns involved (for example, the value of ADC_CMD_ARGS_PATT), please be sure you know what you're doing.