diff --git a/doc/master-toc.mkd b/doc/master-toc.mkd index 41a8d74..9e4672a 100644 --- a/doc/master-toc.mkd +++ b/doc/master-toc.mkd @@ -21,7 +21,8 @@ ## [WARNINGS][] -## [trying][] out gitolite +## [testing][] gitolite + * [trying][] out gitolite ## [quick][qi] install, setup, and clone @@ -93,6 +94,7 @@ ## [special][] features/setups + * putting 'repositories' and '.gitolite' [somewhere else][elsewhere] * [disabling pushes][writable] to take backups * [personal][pers] branches * ([link][votes]: voting on commits) @@ -119,14 +121,15 @@ ## [customisation][cust] + * where do you put custom code? * types of non-core programs - * ([link][non-core]: non-core programs shipped with gitolite) - * [commands][] - * [hooks][] - * syntactic [sugar][] - * ([link][triggers]: triggers) - * ([link][vref]: VREFs) - * [developer notes][dev-notes] + * [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 diff --git a/doc/mirroring.mkd b/doc/mirroring.mkd index 9689c7c..7b07882 100644 --- a/doc/mirroring.mkd +++ b/doc/mirroring.mkd @@ -94,7 +94,7 @@ On **each** server: * Run ssh-keygen if needed and get an ssh key pair for the server. Copy the public key to a common area and name it after the host, but with 'server-' - prefixed. So the pubkey for server 'mars' would be stored as + prefixed. For example, the pubkey for server 'mars' must be stored as 'server-mars.pub'. * Copy all keys to all the admin repo clones on your workstation and and add diff --git a/doc/special.mkd b/doc/special.mkd index 37cfe08..4ff6d75 100644 --- a/doc/special.mkd +++ b/doc/special.mkd @@ -6,6 +6,15 @@ ---- +## #elsewhere putting 'repositories' and '.gitolite' somewhere else + +Gitolite insists that the "repositories" and ".gitolite" directories be in +`$HOME`. If you want them somewhere else: + + * do the install as normal, + * *then* move those directories to wherever you want and replace them with + symlinks pointing to the new location. + ## #writable disabling pushes to take backups The `writable` command allows you to disable pushes to all repos or just the @@ -68,3 +77,26 @@ Then write a script that Run this from cron or however you want. +## #gh giving users their own repos + +(Please see [this][wild] for background on the ideas in this section). + +It's very easy to give users their own set of repos to create, with the +username at the top level. The simplest setup is: + + repo CREATOR/..* + C = @all + RW+ = CREATOR + RW = WRITERS + R = READERS + +Now users can create any repo under their own name simply by cloning it or +pushing to it, then use the [perms][] command to add other users to their +WRITERS and READERS lists. + +Of course you can get much more creative if you add a few more roles (see +"roles" in [this][wild] page). + +(I prefer using some prefix, say "u", as in `repo +u/CREATOR/..*`. This helps to keep user-created repos separate, and avoid +name clashes in some far-fetched scenarios). diff --git a/doc/testing.mkd b/doc/testing.mkd index b6f4cc7..bf3eb4d 100644 --- a/doc/testing.mkd +++ b/doc/testing.mkd @@ -9,8 +9,10 @@ so be sure to use a throwaway userid**. cd gitolite prove -(Make sure sshd allows incoming ssh to this userid at least from localhost. -Out of scope for this document: sshd config, 'AllowUsers', etc...) +Make sure: + + * `$HOME/bin` is in `$PATH` + * sshd allows incoming ssh to this userid, at least from localhost Gitolite's test suite is mostly written using [tsh][] -- the "testing shell". Take a look at some of the scripts and you will see what it looks like. It