diff --git a/README.mkd b/README.mkd
index b93c28d..f3355a1 100644
--- a/README.mkd
+++ b/README.mkd
@@ -143,7 +143,7 @@ detail somewhere in gitolite's [doc/][docs] subdirectory.
Most installation problems are caused by not knowing ssh. Take a look at this
[transcript][] to see how simple it actually is, if your server's ssh daemon
-is behaving itself.
+is behaving itself. Someone also wrote a tutorial, see [here][tut].
If I suspect your problem is an ssh issue, I will probably ignore it. Please
learn how [gitolite uses ssh][doc9gas] and then methodically go through the
@@ -194,4 +194,4 @@ Gitolite is released under GPL v2. See COPYING for details.
[doc9gas]: http://github.com/sitaramc/gitolite/blob/pu/doc/gitolite-and-ssh.mkd
[doc6sts]: http://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd
[who]: http://github.com/sitaramc/gitolite/blob/pu/doc/who-uses-it.mkd
-
+[tut]: http://sites.google.com/site/senawario/home/gitolite-tutorial
diff --git a/conf/example.conf b/conf/example.conf
index 1c976e6..99ba483 100644
--- a/conf/example.conf
+++ b/conf/example.conf
@@ -155,7 +155,7 @@ repo git
# ***IMPORTANT NOTES ABOUT "DENY" RULES***:
-# - deny rules do NOT affect read access. They only apply to `W` and `+`.
+# - deny rules do NOT affect read access. They only apply to write access.
#
# - when using deny rules, the order of your rules starts to matter, where
# earlier it did not. The first matching rule applies, where "matching" is
diff --git a/doc/3-faq-tips-etc.mkd b/doc/3-faq-tips-etc.mkd
index 1f86bd6..588d40c 100644
--- a/doc/3-faq-tips-etc.mkd
+++ b/doc/3-faq-tips-etc.mkd
@@ -101,7 +101,6 @@ There *is* a way to use the `@all` syntax for repos also, as described in
* don't use `NAME/` or such restrictions on the special `@all` repo. Due to
the potential for defeating a crucial optimisation and slowing down *all*
access, we do not support this.
- * don't try giving `@all` users some permission for `@all` repos
diff --git a/doc/big-config.mkd b/doc/big-config.mkd
index 9bbe29b..440288b 100644
--- a/doc/big-config.mkd
+++ b/doc/big-config.mkd
@@ -11,6 +11,7 @@ In this document:
* storing usergroup information outside gitolite (like in LDAP)
* why
* how
+ * implementation notes
@@ -292,3 +293,45 @@ Then set the `$GL_GET_MEMBERSHIPS_PGM` variable in the rc file to the full
path to this program, set `$GL_BIG_CONFIG` to 1, and that will be that.
[gwd]: http://github.com/sitaramc/gitolite/blob/pu/doc/3-faq-tips-etc.mkd#gwd
+
+
+
+### implementation notes
+
+To understand how big-config works, we'll first look at how it works without
+this setting. Think back to the example at the top, and assume 'alice' is
+accessing the 'lynx' repo. The various rights are governed by the following
+hash elements:
+
+ # for the first level checks
+ $repos{'lynx'}{'R'}{'alice'} = 1
+ $repos{'lynx'}{'W'}{'alice'} = 1
+
+ # for the second level checks
+ $repos{'lynx'}{'alice'}{'refs/heads/master'} = 'RW';
+ $repos{'lynx'}{'alice'}{'refs/heads/next'} = 'RW+';
+
+Those elements are explicitly specified in the compiled hash, as you can see
+(you don't need to know perl too much to read a hash; just make some educated
+guesses if needed!)
+
+Now look at the compiled hash produced when `GL_BIG_CONFIG` is set. In place
+of both 'firefox' and 'lynx' you have '@wbr', and similarly '@devs' for both
+'alice' and 'bob'. In addition, there is a group hash at the bottom that
+lists each group and its members.
+
+When 'alice' tries to access the 'lynx' repo, gitolite collects all the group
+names that these names belong to, so '@devs' is added to the list of 'user'
+names that 'alice' inherits permissions from, and '@wbr' is added to the list
+of 'repo' names that 'lynx' inherits from. This means that the final access
+inherits all permissions pertaining to the following combinations:
+
+ alice, lynx
+ alice, @wbr
+ @devs, lynx
+ @devs, @wbr
+
+(Actually there are 3 more... try and guess what they may be!)
+
+Anyway, all ACL rules for these combinations are clubbed together to make the
+composite set of rules that 'alice' accessing 'lynx' is subject to.
diff --git a/doc/ssh-troubleshooting.mkd b/doc/ssh-troubleshooting.mkd
index 3fe7e64..6238cf9 100644
--- a/doc/ssh-troubleshooting.mkd
+++ b/doc/ssh-troubleshooting.mkd
@@ -39,6 +39,8 @@ Other resources:
* people who think this is too hard should take a look at this
[transcript][] to **see how simple it *actually* is**.
+ * someone also wrote a tutorial, see [here][tut].
+
* I **strongly** recommend reading [doc/gitolite-and-ssh.mkd][doc9gas],
which is a very detailed look at how gitolite uses ssh's features on the
server side. Most people don't know ssh as well as they *think* they do;
@@ -421,9 +423,9 @@ or
gl-tool shell-add ~/foo.pub
-The first method is to be used if you used the **user-install** mode, while
-the second method is for the **system-install followed by user-setup** mode
-(see doc/1-INSTALL.mkd, section on "install methods", for more on this)
+The first method is applicable if you installed using the **from-client**
+method, while the second method is for any of the other three (see
+doc/1-INSTALL.mkd, section on "install methods", for more on this)
**IMPORTANT UPGRADE NOTE**: previous implementations of this feature were
crap. There was no easy/elegant way to ensure that someone who had repo admin
@@ -474,3 +476,4 @@ bigger problems than gitolite install not working!)]
[repout]: http://github.com/sitaramc/gitolite/blob/pu/doc/report-output.mkd
[transcript]: http://github.com/sitaramc/gitolite/blob/pu/doc/install-transcript.mkd
[openssh56]: http://www.openssh.org/txt/release-5.6
+[tut]: http://sites.google.com/site/senawario/home/gitolite-tutorial
diff --git a/doc/wildcard-repositories.mkd b/doc/wildcard-repositories.mkd
index 4d73150..acd8905 100644
--- a/doc/wildcard-repositories.mkd
+++ b/doc/wildcard-repositories.mkd
@@ -264,6 +264,15 @@ commands, thanks to Teemu.
In order to see what repositories were created from a wildcard, use the
"expand" command, described briefly in [doc/report-output.mkd][repout].
+### deleting a wild repo
+
+See [repo deletion][rmr] for more on this. Note that this requires you to
+install/setup "adc"s (admin defined commands). See
+[doc/admin-defined-commands.mkd][adc] for how to do that.
+
+[adc]: http://github.com/sitaramc/gitolite/blob/pu/doc/admin-defined-commands.mkd
+[rmr]: http://github.com/sitaramc/gitolite/blob/pu/contrib/adc/repo-deletion.README
+
### how it actually works