Pour ajouter un nouveau dépôt Git à ceux gérés par Gitolite,
il faut avoir accès au dépôt
gitolite-admin.git
. L'opération se fait en modifiant ce dernier,
et ne nécessite en aucun cas d'ouvrir un shell sur
bulbe.
Des précisions sont disponibles en anglais dans la documentation de Gitolite.
Création d'un dépôt
Il s'agit de créer un nouvel enregistrement de cette forme, dans
conf/gitolite.conf
:
repo foo
RW = @bar some_user
R = some_other_user
Plus d'informations sur la syntaxe utilisée pour spécifier les droits d'accès.
Mettre en place un accès public
Si le dépôt doit être accessible publiquement, il est nécessaire d'effectuer les opérations suivantes :
mkdir /srv/http/$REPOSITORY.git
chown git:website /srv/http/$REPOSITORY.git
chmod 775 /srv/http/$REPOSITORY.git
sudo -u git -s
cd /srv/http/$REPOSITORY.git
git init --bare --shared=world
mv hooks/post-update.sample hooks/post-update
chmod +x hooks/post-update
hooks/post-update
git config gitweb.url https://nos-oignons.net/$REPOSITORY.git
git config --add gitweb.url ssh://git@bulbe.nos-oignons.net/$REPOSITORY.git
git config gitweb.owner 'Nos oignons'
mkdir /srv/git/.gitolite/hooks/$REPOSITORY
On va ensuite créer un nouveau fichier
/srv/git/.gitolite/hooks/$REPOSITORY/post-update
contenant :
#!/bin/sh
set -e
umask 002
# Update public Git repository
git push public --all
On reprend nos commandes :
chmod +x /srv/git/.gitolite/hooks/$REPOSITORY/post-update
ln -s ../../../.gitolite/hooks/$REPOSITORY/post-update /srv/git/repositories/$REPOSITORY.git/hooks
cd /srv/git/repositories/$REPOSITORY.git
git remote add public /srv/http/$REPOSITORY.git
hooks/post-update
Pour que le dépôt soit accessible par Gitweb, il faut ajouter un lien symbolique (en root
) :
ln -s /srv/http/$REPOSITORY.git /var/cache/git
Il faut également penser à mettre du contenu intéressant dans le fichier
/srv/http/$REPOSITORY.git/description
.
La toute dernière opération est l'accès par Nginx. Pour cela, on va
modifier /etc/nginx/sites-available/https
pour ajouter une section telle que :
location /nouveau-depot.git {
alias /srv/http/nouveau-depot.git;
}
Suppression d'un dépôt
Lors de la suppression d'un dépôt, il est nécessaire d'avoir un shell sur
bulbe
. Attention, cette opération efface les données relatives au dépôt
en question présentes sur bulbe
.
Dans le dépôt
gitolite-admin
, retirer le dépôt du fichierconf/gitolite.conf
. Il s'agit de retirer l'enregistrement commençant parrepo foo
, mais également de s'assurer quefoo
ne figure plus dans un groupe de dépôts.Comettre et pousser la modification.
Effacer le dossier
/srv/git/repositories/foo.git
. Attention, lors de cette opération, les données sont réellement effacées.