Aide:TrouliteSVN
Sommaire |
Utilisation de SVN sur troulite
SVN est installé sur troulite. Toute personne ayant un compte sur troulite peut s'en servir aussi bien en lecture qu'en écriture. Il n'y a pour l'instant pas d'utilisateur anonyme qui pourrait seulement faire des checkout/update. Si la nécessité se fait sentir, on pourra toujours le rajouter plus tard.
Les différents dépôts
Actuellement, quatre dépôts indépendants sont présents:
- conf, destiné à recueillir tous les fichiers de configuration des différents services de troulite, mais aussi de n'importe quelle autre application (Emacs, vi, ...)
- linux, pour tout ce qui touche à Linux dans sa philosophie : shellscripts, sources de logiciels Linux, ...
- rails est le dépôt à utiliser pour les projets basés sur Ruby on Rails
- www permet de versionner des sites Web.
Il est bien évidemment possible d'en créer de nouveaux si nécessaire, il suffit de demander à un admin.
WebSVN
WebSVN est une interface Web de visualisation des repositories. Elle permet de voir facilement le contenu des différents dépôts ainsi que leurs changelogs. On notera ici une incohérence : pour "manipuler" SVN, il faut un compte sur troulite mais l'interface Web est accessible à tous. C'est un peu bête mais c'est comme ça.
Utilisation de SVN
Comme dit précédemment, SVN est utilisable pour quiconque possède un compte sur troulite. Il est possible d'utiliser SVN directement sur troulite, en local en utilisant comme adresse file:///path_to_repository/ ou à distance en utilisant un tunnel SSH (automatique avec tout client SVN qui se respecte) : svn+ssh://user@troulite.fr/path_to_repository.
Quelques exemple:
# Création d'un nouveau projet dans le repository linux svn import project file:///var/svn/linux/ # en local svn import project svn+ssh://zereaper@troulite.fr/var/svn/linux/ # à distance
# Checkout d'un projet (ici apt-troulite) svn checkout file:///var/svn/linux/apt-troulite local_path svn checkout svn+ssh://zereaper@troulite.fr/var/svn/linux/apt-troulite local_path
Une fois que l'on a soit importé un nouveau projet, soit récupéré un projet déjà existant, il n'est plus nécessaire de préciser les URLS :
svn update apt-troulite svn commit -m "Added some comments" apt-troulite
Note: Dans le cas de svn+ssh, si l'utilisateur local est le même que l'utilisateur distant, on n'est pas obligé de préciser le user@ dans l'URL
Règles de "bonne conduite"
Rien de bien contraignant :
- Veiller à créer de belles arborescences lors des imports pour ne pas se retrouver avec un gros bordel à la racine
- Faire attention aux données sensibles (penser à leur rajouter le mot-clé svn:ignore)
- Eviter de mettre de gros fichiers binaires (TODO: voir comment Subversion gère les fichiers binaires)
- Faire attention à ne pas péter les repositories, bien que ça soit a priori récupérable (justement grâce au versioning)
- Essayer de commiter des ensembles cohérents et fonctionnels (des scripts qui marchent, du code source qui compile, ...)
Quelques trucs sympas
Subversion possède un mécanisme de hooks assez pratiques. On peut par exemple exécuter des scripts après un commit. Les hooks possibles sont:
- post-commit
- post-lock
- post-revprop-change
- post-unlock
- pre-commit
- pre-lock
- pre-revprop-change
- pre-unlock
- start-commit
Ces hooks sont globaux au niveau de chaque dépôt. Ce système est pas mal du tout puisqu'il permet par exemple de mettre automatiquement le site Web de troulite à jour lorsqu'un commit est fait: le hook post-commit lance un svn update du site. Cela permet donc au site Web d'être le reflet du repository SVN et d'être toujours à jour sans avoir à utiliser FTP, WebDAV, ... On peut imaginer également mettre automatiquement à jour des scripts d'administration, envoyer des emails lorsqu'un repo change, lancer un process markdown pour générer de l'HTML à partir des sources stockés dans Subversion, ...