Git, gitolite et mutualisé OVH

/!\ pour la version 3 pensez à lire ceci.

Hello,
Sur les mutualisés OVH, la version fournie de git est plus qu’out-of-date : version 1.4.4. Ceci signifie impossibilité d’installé des outils tels que gitolite ou inferno. Ce billet est l’occasion d’un guide pour installer gitolite.

Le guide suivant a été rédigé sur un compte OVH pro, donc avec accès un ssh. En utilisant git 1.7.6 et gitolite 2.0.3. L’ensemble exécuter sur une machine Linux.

Téléchargement

La première étape, consiste a récupérer les différentes archives nécessaires, a savoir git et gitolite.

Pour git, il vous suffit de prendre la dernière version http://git-scm.com/download.

Pour gitolite, il suffit d’utiliser git!

git clone https://github.com/sitaramc/gitolite.git

Préparation de l’environnement

Nous allons installer les exécutables de git dans ~/opt/bin. De ce fait ajoutons le path a l’utilisateur ssh.
Ouvrir ~/.bash_profile et modifier le path. Pour ce faire ajouter, avant le export :

PATH=$HOME/opt/bin:$PATH

Installation de git

Uploader votre archive dans un dossier (ici ~/opt/src/). En mode console par ssh, donc sur le serveur, ouvrir l’archive et compiler les sources.

tar -xvzf git-1.7.6.tar.gz
cd git-1.7.6
./configure --prefix=$HOME/opt --without-tcltk
make
make install

Une fois compilé, les exécutables seront présents dans ~/opt/bin. Pour vérifier, que tout est bien en place :

git --version

Gitolite

Il faut se rendre dans le répertoire du clone du repository. Tout s’exécute uniquement sur la machine cliente (donc pas chez ovh). Si l’utilisateur est « toto », l’host « tata.com » et le futur administrateur « moiadmin »

./src/gl-easy-install toto tata.com moiadmin

Il suffit de faire enter. Dans tous les cas (mise à jour du script compris!), le fait de réexecuter la commande permet de rectifier les erreurs éventuelles. À l’étape de l’édition du fichier de configuration, il faut modifier la variable $GIT_PATH pour quelle pointe vers le répertoire contenant notre git. Dans notre cas :

$GIT_PATH = $ENV{HOME} . "/opt/bin/";

Configuration de Gitolite

La configuration de gitolite est simple et s’exécute avec … git! En principe, un répertoire reprenant la config a été créé sur votre home dans ~/gitolite-admin, dans le cas contraire, il vous suffit de faire

git clone gitolite:gitolite-admin.git

Pour ajouter des clefs ssh, il suffit de les mettre dans le dossier keys. Pour ce qui est de la config, il vous suffit d’éditer le fichier gitolite.conf et puis de faire

git add conf/gitolite.conf
git commit -m 'update config'
git push

Et c’est tout!

Sources :
http://forum.ovh.com/showthread.php?t=71543
http://blog.lyrixx.info/admin-sys/installer-gitolite-sur-une-machine-debian-5/
http://sitaramc.github.com/gitolite/doc/gitolite.rc.html
http://sitaramc.github.com/gitolite/doc/gitolite.conf.html#_groups

Pour vos interfaces web, trois solutions correctes :
CGit
View Git
Indefero