diff --git a/doc/3-faq-tips-etc.mkd b/doc/3-faq-tips-etc.mkd index 25a83ff..4b0a473 100644 --- a/doc/3-faq-tips-etc.mkd +++ b/doc/3-faq-tips-etc.mkd @@ -27,6 +27,7 @@ In this document: * support for git installed outside default PATH * "personal" branches * custom hooks and custom git config + * bypassing gitolite * INconvenience features * deleting a repo * helping with gitweb @@ -558,6 +559,29 @@ You can specify hooks that you want to propagate to all repos, as well as per-repo "gitconfig" settings. Please see `doc/2-admin.mkd` and `conf/example.conf` for details. + + +##### bypassing gitolite + +Sometimes you'll need to access one of the gitolite-managed repos directly on +the server, without going through gitolite. Reasons may be some automatic +updates or some other ad hoc purposes you can dream up. + +Cloning a gitolite-controlled repo is easy enough -- just use the full path +(typically `~/repositories/reponame.git`) instead of just `reponame`, to +compensate for gitolite not sitting in between and adding those things to the +repo path. + +But when you push, the update hook (which git will invoke anyway) will fail +because it needs all sorts of access control info that it now doesn't have, +because the push was invoked without going through gitolite. + +In order to bypass the update hook, just set the `GL_BYPASS_UPDATE_HOOK` +environment variable to "1" or something, export it, and push. I prefer not +to set that variable permanently, preferring this mode instead: + + GL_BYPASS_UPDATE_HOOK=1 git push + #### INconvenience features