Un dépôt git est disponible à l'AUF. Il permet :
- à quiconque de suivre les développements AUF ;
- à tout technicien AUF d'y présenter ses développements.
Les projets publics de ce dépôt sont visibles ici : http://git.auf.org/
Ci-dessous un résumé (pense-bête) des commandes à utiliser pour exploiter ce service. Si vous voulez vraiment savoir utiliser git, consultez d'abord la documentation officielle.
Télécharger et suivre d'un projet
Premier téléchargement :
$ git clone http://git.auf.org/git/projet
Télécharger les mises à jour :
$ cd projet $ git pull
Participer à un projet (droits en écriture)
Nécessite un accès RPV + ssh.
$ git push ssh://git.auf/~user/projet
Création d'un projet
Nécessite un accès RPV + ssh.
Sur la machine où le projet est présent :
$ git clone --bare ~/projet projet.export $ rsync -a projet.export git.auf:~user/projet $ rm -rf projet.export
Sur le serveur :
$ cd /.../projet/ $ echo "description" > description $ touch git-daemon-export-ok $ git --bare update-server-info $ chmod a+x hooks/post-update
Publication via http et vue sur gitweb (optionnelles) :
$ cd /srv/git/ $ ln -s /.../projet .
Partage en écriture
Si plusieurs personnes doivent intervenir sur le projet, on peut créer un compte "virtuel" accessible par ssh à un ensemble de clés bien défini. L'adresse publique ne changera pas.
Eviter un accès shell complet via ssh
Pour que l'accès ssh soit restreint aux commandes git nécessaires, on met le shell de connexion de l'utilisateur à /usr/bin/git-shell1.
Ce qui reste à faire
- rsync public pour accès rsync
webdav ? Mmh, les droits d'écriture à "www-data" ne me plaisent pas. Ceci dit, pour un accès public, c'est-à-dire écriture depuis en dehors du RPV... Entre ça et rssh/scponly sur un port autre que 22...?
- git-daemon pour accès git:// plus optimisé : pas vraiment nécessaire
http://eagain.net/blog/2007/03/22/howto-host-git.html : hébergement de gits, à étudier (lu en diagonale)
- dissocier gitweb de la publication via http (c'est-à-dire ne pas rendre tous les projets publics visibles via gitweb) : possible mais plutôt inutile
Ni rssh ni scponly ne fonctionnent, notamment par rapport à la notion de hooks (1)