lotsa doca fixa uppa

major changes
  - (src) one error message got more detail
  - long overdue fixup to developer notes doc

plus many minor changes that have been piling up

PS: to dig into the "alliterative animal" comment, check the channel
logs around aug 23rd ;-)
This commit is contained in:
Sitaram Chamarty 2011-09-01 15:56:03 +05:30
parent c41fcc2653
commit e3bc6e7c48
6 changed files with 42 additions and 60 deletions

View file

@ -337,12 +337,12 @@ we mean `conf/gitolite.conf` on your gitolite-admin clone.
### getting the gitolite software ### getting the gitolite software
You can get the latest version of gitolite from github or indefero using the You can get the latest version of gitolite from github or google code using
'git clone' command: the 'git clone' command:
git clone git://github.com/sitaramc/gitolite.git git clone git://github.com/sitaramc/gitolite.git
# (OR) # (OR)
git clone git://sitaramc.indefero.net/sitaramc/gitolite.git git clone https://code.google.com/p/gitolite/
<a name="_getting_a_tar_file_from_a_clone"></a> <a name="_getting_a_tar_file_from_a_clone"></a>

View file

@ -391,23 +391,15 @@ you could set your hooks to only work if a certain "gitconfig" variable was
set. Which means we now need a way to specify "git config" settings on a per set. Which means we now need a way to specify "git config" settings on a per
repository basis. repository basis.
[Note: this feature is disabled by default. Read the comments around a
variable called `GL_GITCONFIG_KEYS` in the rc file, then set it to some
appropriate value, to enable this feature.]
Thanks to Teemu (teemu dot matilainen at iki dot fi), gitolite now does this Thanks to Teemu (teemu dot matilainen at iki dot fi), gitolite now does this
very easily. For security reasons, this can only be done from the master very easily. For security reasons, this can only be done from the master
config file (i.e., if you're using delegation, the delegated admins cannot config file (i.e., if you're using delegation, the delegated admins cannot
specify git config settings). specify git config settings).
Please see `doc/gitolite.conf.mkd` for syntax. Note that this only supports the Please see `doc/gitolite.conf.mkd` for syntax and limitations. Also note that
basic forms of the "git config" command: this feature is disabled by default. Read the comments on a variable called
`GL_GITCONFIG_KEYS` in the rc file documentation, then set it to some
git config section.key value # value may be an empty string appropriate value, to enable this feature.
git config --unset-all section.key
It does not (currently) support other options like `--add`, the `value_regex`,
etc.
[genpub]: http://sitaramc.github.com/0-installing/2-access-gitolite.html#generating_a_public_key [genpub]: http://sitaramc.github.com/0-installing/2-access-gitolite.html#generating_a_public_key
[confmkd]: http://sitaramc.github.com/gitolite/doc/gitolite.conf.html [confmkd]: http://sitaramc.github.com/gitolite/doc/gitolite.conf.html

View file

@ -2,9 +2,6 @@
In this document: In this document:
* <a href="#_current_development_version">current development version</a>
* <a href="#_testing_status_of_gitolite_v2_0rc1">testing status of gitolite v2.0rc1</a>
* <a href="#_migration_to_gitolite_v2_x">migration to gitolite v2.x</a>
* <a href="#_general_stuff">general stuff</a> * <a href="#_general_stuff">general stuff</a>
* <a href="#_the_rc_file">the rc file</a> * <a href="#_the_rc_file">the rc file</a>
* <a href="#_modules">modules</a> * <a href="#_modules">modules</a>
@ -17,46 +14,6 @@ In this document:
---- ----
<a name="_current_development_version"></a>
### current development version
The current gitolite development version is v2.0rc1. Unless there is a
serious security problem, *or* one of my large users [i.e., anyone whose name
is in doc/who-uses-it.mkd (grin!)] needs it, all future changes will now
happen here.
The commit looks *huge*, but it's mostly just large chunks of code moving
around; there's not a whole lot of new code. However, I do apologise if
anyone has their local changes conflicted when merging or rebasing against
this version, and I promise to help as much as I can.
<a name="_testing_status_of_gitolite_v2_0rc1"></a>
#### testing status of gitolite v2.0rc1
Pretty much all the major features have been properly tested using the test
suite. The following exceptions exist:
* basic, manual, testing only
* most admin defined commands
* smart http
* mob branches
* not yet tested
* mirroring
* things which I have no easy way to test
* controlling gitweb authentication using gitolite (as described [here][gw])
* SVN passthru
<a name="_migration_to_gitolite_v2_x"></a>
### migration to gitolite v2.x
In general, the procedure for migrating described in the install document
should suffice. Even the rc file hasn't really changed much from the latest
versions in v1.x, except that if you add a new variable to it you must also
add it to the @EXPORT list in `src/gitolite_rc.pm`.
<a name="_general_stuff"></a> <a name="_general_stuff"></a>
### general stuff ### general stuff
@ -108,6 +65,7 @@ gets this from `GL_BINDIR`.
* for frequently run perl programs, I prefer my method * for frequently run perl programs, I prefer my method
* gl-auth-command -- this is invoked with a full path * gl-auth-command -- this is invoked with a full path
* gl-mirror-shell -- same as above
* gl-time -- same as above * gl-time -- same as above
* "their" ideal is "FindBin". I will use it only on manually or * "their" ideal is "FindBin". I will use it only on manually or
@ -123,9 +81,9 @@ gets this from `GL_BINDIR`.
method, not FindBin). This is suitable for calling from shell scripts method, not FindBin). This is suitable for calling from shell scripts
as `${0%/*}/gl-query-rc GL_BINDIR` as `${0%/*}/gl-query-rc GL_BINDIR`
* gl-mirror-shell (frequent use)
* gl-setup * gl-setup
* gl-tool * gl-tool
* gl-mirror-push
<a name="_OUTLIER_"></a> <a name="_OUTLIER_"></a>

View file

@ -17,6 +17,7 @@ In this document:
* <a href="#_summary_permissions">summary: permissions</a> * <a href="#_summary_permissions">summary: permissions</a>
* <a href="#_virtual_ref_types">virtual "ref"-types</a> * <a href="#_virtual_ref_types">virtual "ref"-types</a>
* <a href="#_other_tips">other tips</a> * <a href="#_other_tips">other tips</a>
* <a href="#_personal_branches">personal branches</a>
* <a href="#_splitting_up_rules_into_rulesets">splitting up rules into rulesets</a> * <a href="#_splitting_up_rules_into_rulesets">splitting up rules into rulesets</a>
* <a href="#_gitweb_and_daemon">gitweb and daemon</a> * <a href="#_gitweb_and_daemon">gitweb and daemon</a>
* <a href="#_repo_specific_git_config_commands">repo specific `git config` commands</a> * <a href="#_repo_specific_git_config_commands">repo specific `git config` commands</a>
@ -81,7 +82,7 @@ config file exists.
Files that have been already processed once are skipped, with a warning. Files that have been already processed once are skipped, with a warning.
<font color="gray">Advanced users: `subconf`, a command that is very closely <font color="gray">Advanced users: `subconf`, a command that is very closely
related to `include`, is documented [here][subconf].</gray> related to `include`, is documented [here][subconf].</font>
[subconf]: http://sitaramc.github.com/gitolite/doc/delegation.html#_the_subconf_command [subconf]: http://sitaramc.github.com/gitolite/doc/delegation.html#_the_subconf_command
@ -118,6 +119,22 @@ tag with a new value.
In a later section you'll see some more advanced permissions. In a later section you'll see some more advanced permissions.
<font color="gray">
Side note: apparently it needs to be spelled out that "R" permissions can only
apply to the entire repo and not to individual branches/tags. Mention was
made of a certain popular Linux distribution named after animals with
adjectives, chosen merely for alliterative purposes, prefixed to their names,
and of their users not being clueful enough to know that this (the "read"
thing, not the alliterative adjective thing, in case you lost track) is an
inherent git characteristic.
Meanwhile, people who *desperately* need this are directed to gerrit, which
can do this because they have their own git stack and dont use the one written
by Linus and currently maintained by Junio.
</font>
<a name="_how_rules_are_matched"></a> <a name="_how_rules_are_matched"></a>
#### how rules are matched #### how rules are matched
@ -389,10 +406,20 @@ found in doc/wildcard-repositories.mkd.]
This is a highly advanced topic; see [doc/virtualrefs-and-scoring.mkd][vs] for This is a highly advanced topic; see [doc/virtualrefs-and-scoring.mkd][vs] for
details. details.
[vs]: http://sitaramc.github.com/gitolite/doc/virtualrefs-and-scoring.html
<a name="_other_tips"></a> <a name="_other_tips"></a>
### other tips ### other tips
<a name="_personal_branches"></a>
#### personal branches
Gitolite lets you define a "personal" or "scratch" namespace prefix for each
developer (for example, `refs/personal/<devname>/*`); see the "personal
branches" section in `doc/3-faq-tips-etc.mkd` for details.
<a name="_splitting_up_rules_into_rulesets"></a> <a name="_splitting_up_rules_into_rulesets"></a>
#### splitting up rules into rulesets #### splitting up rules into rulesets

View file

@ -68,6 +68,9 @@ of setup you need. Here're some advantages:
for everything. They don't need to know where the master is, so they're for everything. They don't need to know where the master is, so they're
insulated from any changes you make behind the scenes. insulated from any changes you make behind the scenes.
This is as close to **active-active** mirroring as you can get without
worrying about race conditions and similar problems.
* **partial mirroring**: all repos don't have to go all mirrors. You can * **partial mirroring**: all repos don't have to go all mirrors. You can
choose not to mirror a repo at all, or mirror it only to certain servers. choose not to mirror a repo at all, or mirror it only to certain servers.
This could be due to any reason: repo too big/high-traffic for the server, This could be due to any reason: repo too big/high-traffic for the server,

View file

@ -994,6 +994,8 @@ sub setup_authkeys
if ($pubkey_content =~ /\n./) if ($pubkey_content =~ /\n./)
{ {
warn "WARNING: a pubkey file can only have one line (key); ignoring $pubkey\n" . warn "WARNING: a pubkey file can only have one line (key); ignoring $pubkey\n" .
" Perhaps you're using a key in a different format (like putty/plink)?\n" .
" If so, please convert it to openssh format using 'ssh-keygen -i'.\n" .
" If you want to add multiple public keys for a single user, use\n" . " If you want to add multiple public keys for a single user, use\n" .
" \"user\@host.pub\" file names. See the \"one user, many keys\"\n" . " \"user\@host.pub\" file names. See the \"one user, many keys\"\n" .
" section in doc/3-faq-tips-etc.mkd for details.\n"; " section in doc/3-faq-tips-etc.mkd for details.\n";