(big-config) update doc and rc, allow skipping gitweb/daemon
skipping gitweb/daemon has an enormous impact on speed of an admin-push!
This commit is contained in:
parent
58fc6a3252
commit
35750c1abe
|
@ -1,5 +1,4 @@
|
|||
# paths and configuration variables for gitolite
|
||||
$GL_BIG_CONFIG = 1;
|
||||
|
||||
# please read comments before editing
|
||||
|
||||
|
@ -83,7 +82,13 @@ $GIT_PATH="";
|
|||
|
||||
# --------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# BIG CONFIG SETTINGS
|
||||
|
||||
# Please read doc/big-config.mkd for details
|
||||
|
||||
$GL_BIG_CONFIG = 0;
|
||||
$GL_NO_DAEMON_NO_GITWEB = 0;
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# SECURITY SENSITIVE SETTINGS
|
||||
|
|
|
@ -4,14 +4,15 @@ In this document:
|
|||
|
||||
* when/why do we need it?
|
||||
* how do we use it?
|
||||
* summary of settings in RC file
|
||||
* what are the downsides?
|
||||
* (extra coolness) usergroups and LDAP/similar tools
|
||||
|
||||
### when/why do we need it?
|
||||
|
||||
A "big config" is anything that has more than a few thousand users and a few
|
||||
thousand repos, organised into groups that are much smaller in number (like
|
||||
maybe a few hundreds of repogroups and a few dozens of usergroups).
|
||||
A "big config" is anything that has a few thousand users and a few thousand
|
||||
repos, organised into groups that are much smaller in number (like maybe a few
|
||||
hundreds of repogroups and a few dozens of usergroups).
|
||||
|
||||
So let's say you have
|
||||
|
||||
|
@ -137,6 +138,24 @@ configuration, the compiled file looks like this:
|
|||
That's a lot smaller, and allows orders of magintude more repos and groups to
|
||||
be supported.
|
||||
|
||||
### summary of settings in RC file
|
||||
|
||||
The default RC file contains the following lines:
|
||||
|
||||
$GL_BIG_CONFIG = 0;
|
||||
$GL_NO_DAEMON_NO_GITWEB = 0;
|
||||
|
||||
The first setting means that by default, big-config is off; you can change it
|
||||
to 1 to enable it.
|
||||
|
||||
The second is a very useful optimisation that you *must* enable if you *do*
|
||||
have a large number of repositories, and do *not* use gitolite's support for
|
||||
gitweb or git-daemon access (see "[easier to specify gitweb description and
|
||||
gitweb/daemon access][gw]" for details). This will save a lot of time when
|
||||
you push the gitolite-admin repo with changes.
|
||||
|
||||
[gw]: http://github.com/sitaramc/gitolite/blob/pu/doc/3-faq-tips-etc.mkd#gitweb
|
||||
|
||||
### what are the downsides?
|
||||
|
||||
There are a few minor issues.
|
||||
|
|
|
@ -52,7 +52,7 @@ $Data::Dumper::Sortkeys = 1;
|
|||
open STDOUT, ">", "/dev/null" if (@ARGV and shift eq '-q');
|
||||
|
||||
# these are set by the "rc" file
|
||||
our ($GL_ADMINDIR, $GL_CONF, $GL_KEYDIR, $GL_CONF_COMPILED, $REPO_BASE, $REPO_UMASK, $PROJECTS_LIST, $GIT_PATH, $GL_WILDREPOS, $GL_GITCONFIG_KEYS, $GL_PACKAGE_HOOKS, $GL_SETPERMS_OVERRIDES_CONFIG, $GL_BIG_CONFIG);
|
||||
our ($GL_ADMINDIR, $GL_CONF, $GL_KEYDIR, $GL_CONF_COMPILED, $REPO_BASE, $REPO_UMASK, $PROJECTS_LIST, $GIT_PATH, $GL_WILDREPOS, $GL_GITCONFIG_KEYS, $GL_PACKAGE_HOOKS, $GL_SETPERMS_OVERRIDES_CONFIG, $GL_BIG_CONFIG, $GL_NO_DAEMON_NO_GITWEB);
|
||||
# and these are set by gitolite.pm
|
||||
our ($REPONAME_PATT, $REPOPATT_PATT, $USERNAME_PATT, $AUTH_COMMAND, $AUTH_OPTIONS, $ABRT, $WARN);
|
||||
|
||||
|
@ -470,6 +470,7 @@ for my $repo (keys %repo_config) {
|
|||
|
||||
wrap_chdir("$repo_base_abs");
|
||||
|
||||
unless ($GL_NO_DAEMON_NO_GITWEB) {
|
||||
# daemons first...
|
||||
for my $repo (sort keys %repos) {
|
||||
next unless $repo =~ $REPONAME_PATT;
|
||||
|
@ -521,6 +522,7 @@ for my $proj (sort keys %projlist) {
|
|||
print $projlist_fh "$proj\n";
|
||||
}
|
||||
close $projlist_fh;
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# "compile" ssh authorized_keys
|
||||
|
|
Loading…
Reference in a new issue