doc/3, conf: document @all for repos

plus some refactoring of doc/3
This commit is contained in:
Sitaram Chamarty 2009-12-21 22:58:47 +05:30
parent f37fb45144
commit ba3cbd7ecf
2 changed files with 50 additions and 25 deletions

View file

@ -104,7 +104,8 @@ repo @oss_repos
# set permissions to all already defined repos # set permissions to all already defined repos
# (a repository is defined if it has permission rules # (a repository is defined if it has permission rules
# associated, empty "repo" stanza or "@group=..." line is # associated, empty "repo" stanza or "@group=..." line is
# not enough) # not enough). *Please* do see doc/3-faq-tips-etc.mkd for
# some important notes on this feature
repo @all repo @all
RW+ = @admins RW+ = @admins

View file

@ -5,6 +5,10 @@ In this document:
* common errors and mistakes * common errors and mistakes
* git version dependency * git version dependency
* other errors, warnings, notes... * other errors, warnings, notes...
* ssh-copy-id
* cloning an empty repo
* `@all` syntax for repos
* umask setting
* getting a tar file from a clone * getting a tar file from a clone
* differences from gitosis * differences from gitosis
* simpler syntax * simpler syntax
@ -76,38 +80,58 @@ normal way, since it's not empty anymore.
### other errors, warnings, notes... ### other errors, warnings, notes...
* don't have `ssh-copy-id`? This is broadly what that command does, if you #### ssh-copy-id
want to replicate it manually. The input is your pubkey, typically
`~/.ssh/id_rsa.pub` from your client/workstation.
* it copies it to the server as some file don't have `ssh-copy-id`? This is broadly what that command does, if you want
to replicate it manually. The input is your pubkey, typically
`~/.ssh/id_rsa.pub` from your client/workstation.
* it appends that file to `~/.ssh/authorized_keys` on the server * it copies it to the server as some file
(creating it if it doesn't already exist)
* it then makes sure that all these files/directories have go-w perms * it appends that file to `~/.ssh/authorized_keys` on the server
set (assuming user is "git"): (creating it if it doesn't already exist)
/home/git/.ssh/authorized_keys * it then makes sure that all these files/directories have go-w perms
/home/git/.ssh set (assuming user is "git"):
/home/git
[Actually, sshd requires that even directories *above* ~ (/, /home, /home/git/.ssh/authorized_keys
typically) also must be `go-w`, but that needs root. And typically /home/git/.ssh
they're already set that way anyway. (Or if they're not, you've got /home/git
bigger problems than gitolite install not working!)]
* cloning an empty repo is only possible with clients greater than 1.6.2. [Actually, sshd requires that even directories *above* ~ (/, /home,
So at least one of your clients needs to have a recent git. Once at least typically) also must be `go-w`, but that needs root. And typically
one commit has been made, older clients can also use it they're already set that way anyway. (Or if they're not, you've got
bigger problems than gitolite install not working!)]
* when you clone an empty repo, git seems to complain about `fatal: The #### cloning an empty repo
remote end hung up unexpectedly`. However, you can ignore this, since it
doesn't seem to hurt anything. [Update 2009-09-14; this has been fixed in
git 1.6.4.3]
* gitweb not able to read your repos? You can change the umask for newly Cloning an empty repo is only possible with clients greater than 1.6.2. So at
created repos to something more relaxed -- see the `~/.gitolite.rc` file least one of your clients needs to have a recent git. Once at least one
commit has been made, older clients can also use it
When you clone an empty repo, git seems to complain about `fatal: The remote
end hung up unexpectedly`. However, you can ignore this, since it doesn't
seem to hurt anything. [Update 2009-09-14; this has been fixed in git
1.6.4.3]
#### `@all` syntax for repos
There *is* a way to use the `@all` syntax for repos also, as described in
`conf/example.conf`. However, there is an important difference between this
and the old `@all` (for users):
* `@all` for repos is immediately expanded, when found, into the currently
known list of repos. "Currently" means upto this point in the config
file, and "known" means having some user with some permissions associated
with the repo!
* This means that if you really want *all* repos, you'd better put this para
at the **end** of the config file!
#### umask setting
Gitweb not able to read your repos? You can change the umask for newly
created repos to something more relaxed -- see the `~/.gitolite.rc` file
### getting a tar file from a clone ### getting a tar file from a clone