# gitolite documentation ## [Introduction][index] * (for [older][g2] gitolite (v1 or v2) users) * [quick links][ql] * [what][] is gitolite * [why][] might you need it * [contact][] info, mailing list, IRC channel * [license][] info ## help for [emergencies][] * [lost][lost-key] admin key/access * [bypass][]ing gitolite * [clean][]ing out a botched install * [common][ce] errors * [uncommon][ue] errors * things that are [not gitolite problems][ngp] ## [WARNINGS][] ## [testing][] gitolite * [trying][] out gitolite ## [quick][qi] install, setup, and clone ## [install][] * notes and naming conventions * requirements * your skills * server * client * getting the software * the actual install * upgrading * packaging gitolite * [migr][]ating ## [setup][] ## [clone][] ## gitolite [admin][]istration * ([server-side][server]) settings, hooks, etc. * ([link][WARNINGS]: important cautions on server side activity) * changing settings in the [rc][] file * installing custom [hooks][] * ([link][existing]: moving existing repos into gitolite) * ([client-side][adminrepo]) access control via the gitolite-admin repo * basic [syntax][] of the [conf][] file * include files * ([link][sugar]: syntactic sugar) * [groups][] (of users and repos) * special: '@all' * (link: storing user group info in LDAP) * adding and removing [users][] * multiple keys per user * adding and removing [repos][] * renaming repos * defining access [rules][] * what does a rule look like? * when are the rules checked? * how are the rules matched? * summary of [permissions][permsum] * additional topics * [rule accumulation][rule-accum] * applying [deny rules][deny-rules] during the pre-git check * ([link][refex]: refexes) * ([link][write-types]: different types of write operations) * ([link][vref]: virtual refs) * gitolite [options][] * "[git config][git-config]" keys and values * ["wild"][wild] repos (user created repos) * quick introduction * (admin) declaring wild repos in the conf file * (user) [creating][create] a specific repo * repo patterns * roles * adding other roles * [IMPORTANT WARNING ABOUT THIS FEATURE][rolenamewarn] * listing wild repos * deleting wild repos ## what your [user][]s need to know ## [special][] features/setups * putting 'repositories' and '.gitolite' [somewhere else][elsewhere] * [disabling pushes][writable] to take backups * [personal][pers] branches * ([link][votes]: voting on commits) * [delegating][deleg] access control responsibilities * ([link][NAME]: the NAME VREF) * the [subconf][] command * ([link][partial-copy]: faking selective READ control) * using pubkeys obtained [from elsewhere][keysonly] * ([link][pushcode]: updating code via the admin repo) ## interfacing with [external][] tools * gitweb * changing the [UMASK][umask] * git-daemon ## [mirroring][] ## [rare][]/one-time activities * moving [existing][] repos into gitolite * [moving][] servers ## [customisation][cust] * where do you put custom code? * types of non-core programs * [commands][] * [hooks][] * syntactic [sugar][] * ([link][triggers]: triggers) * ([link][vref]: VREFs) * ([link][non-core]: non-core programs shipped with gitolite) * [developer notes][dev-notes] -- writing custom code * environment variables and other inputs * APIs * the shell API * the perl API * writing your own... * hooks * commands * trigger programs * sugar ## [non-core][] programs shipped with gitolite * commands * syntactic sugar * triggers * ([link][vref]: VREFs) * special cases * [partial-copy][]: selective read control for branches ## background info * [files and directories][files] involved in install+setup * [auth][]entication versus authorisation * interfacing with [other authentication][otherauth] systems * getting user group info from [LDAP][ldap] * [ssh][] * [regular expressions][regex] ## contributed software, tools, and documentation * TBD ## TBD * log file format, LOG_EXTRA * hub * mob branches * password access