Luon's Git Setup

Our Git setup is completely based on Gitolite.

Cloning/pulling access is granted anonymously/non-authenticated through the HTTP and Git protocol (see below).

When authenticated, pushing is additionally allowed for the repositories the user has access to; the user is also allowed to execute some commands to manipulate his/her accounts/repositories. Authenticated access means that your SSH public RSA key is known to Gitolite. If you want to request an account, or add a key, mail the Git admin your public RSA key.

Global note: except for in HTTP-access URIs the suffix .git can be left out!

Repository access

Not-authenticated/anonymous:

Cloning from:

git://git.luon.net/path/to/project.git

or:

http://git.luon.net/path/to/project.git

This provides read-only access, no pushing or anything is allowed.

Web view available via Gitweb: this will only shows the public repositories and the repositories of all users.

Authenticated

Cloning from and pushing to:

ssh://gitolite@git.luon.net/path/to/project.git

Note that you can only push to existing repositories on the root, but are free to push to users/user/path/to/project which will be created if non-existent. A short version of the URI is:

git.luon.net:path/to/project.git

when the following is added to ~/.ssh/

Host git.luon.net
  User gitolite

Note also the colon (:) instead of the slash (/) after git.luon.net in the short URI.

Web access is provided via Gitweb again, but authenticated and via HTTPS. All repositories for which you have read permissions for are shown. Note that authentication for Gitweb means logging in using the user name and configured web password (see commands below).

Repository administration

Normal repository administration, such as creating, renaming, fixing or deleting needs to be done by the Git admin.

Users can push to/clone from their own repositories via

ssh://gitolite@git.luon.net/users/user/path/to/project.git

to create a personal repository. This repository will be public, i.e. readable by everyone. Private user repositories are (not) yet supported. Also due to running a slightly old version of Gitolite, we lack support for commands to remove a user repository.

Shell commands

When using (this implies passwordless login using your RSA key)

ssh gitolite@git.luon.net command

the following commands can be executed:

info [user]
displays your (or optionally another user's) access to the repositories
expand [user]
displays your (or optionally another user's) expanded (i.e. tries to match against
regexps) access to the repositories
htpasswd
raises a prompt to set the password used for Gitweb
getdesc path/to/project.git
displays the description of the project, used for example in the Gitweb interface
setdesc path/to/project.git
sets the description of the project via stdin

The following commands are supported by Gitolite, but not (yet) by our repositories:

getperm path/to/project.git
displays the (sub)permissions of the project you have granted
setperm path/to/project.git
sets the (sub)permissions of the project