Projet

Général

Profil

Git » Historique » Version 8

« Précédent - Version 8/69 (diff) - Suivant » - Version actuelle
Antoine Lubineau, 21/02/2012 19:56


Installation et utilisation d’un serveur Git

Les explications qui suivent ont été appliquées sur le serveur git.tetaneutral.net de Tetaneutral.net, donc avec une Debian Squeeze.

Git est un gestionnaire de versions décentralisé, libre et développé en C. À noter la traduction française du Git community book.

La configuration se fera essentiellement au travers de Gitolite, qui permet de créer des dépôts, gérer les accès push/pull pour des accès en SSH, déléguer des droits, etc. git-daemon permet de donner un accès au travers du protocole git, et cgit sera utilisé pour l’interface web et le pull en HTTP (ou HTTPS).

Gitolite

Installation

Configuration

Une fois Gitolite installé, la configuration des dépôts et des utilisateurs se fait uniquement au travers du dépôt gitolite-admin.git. Ce dépôt contient deux dossiers:
  • conf qui va contenir les fichiers de configuration (le plus souvent un seul, @@) ;
  • keydir, qui va stocker

git-daemon

cgit

Installation

Comme il n’y a pas de paquet Debian, il faut le compiler à la main. Au moment de la rédaction de ce guide, on ne pouvait pas compiler cgit contre la dernière version de Git (fonctionnel avec cgit 0.9.2.0 et Git 1.7.4).

wget http://hjemli.net/git/cgit/snapshot/cgit-0.9.0.2.tar.bz2
wget http://arch.p5n.pp.ru/~sergej/dl/2011/git-1.7.4.tar.bz2
tar xf cgit-0.9.0.2.tar.bz2
cd cgit-0.9.0.2
tar xf -C git ../git-1.7.4.tar.bz2

On peut modifier le Makefile en mettant

CGIT_SCRIPT_PATH = /var/www

et
prefix = /usr/local/cgit

Configuration

Pour que le serveur web ait les droits de lecture sur les dépôts, il faut ajouter l’utilisateur www-data au groupe git :

usermod -aG git www-data

Faire un chmod -R g+rX sur les dépôts existants (pas gitolite-admin.git), et changer

$REPO_UMASK = 0077;

en
$REPO_UMASK = 0027;

dans ~git/.gitolite.rc (ce réglage ne vaut que pour les dépôts qui seront créés par la suite).

cgit récupère la liste des projets dans ~git/projects.list. Cette liste est complétée par Gitolite pour les dépôts dont gitweb a les droits en lecture (c’est une dénomination spécifique à gitolite, qui n’est pas incluse dans @all).

La configuration de cgit se trouve dans cgitrc(5) :

virtual-root=/
project-list=/home/git/projects.list
scan-path=/home/git/repositories/

Pour spécifier le propriétaire et la description d’un dépôt, voir le manuel de gitolite, section « specifying gitweb and daemon access ».