SVN, le système de gestion de versions
16 novembre 2008Nombreux sont les développeurs qui n’utilisent pas de système de gestion de versions, pour gérer leur projets d’applications ou pour collaborer entre les différents membres de l’équipe de développement (même s’il disent tous le contraire). Je vais essayer par le biais de cet article de vous présenter l’importance du versionning et les différents outils nécessaires à la mise en place et l’utilisation de SVN, (Subversion) qui le système de versionning par excellence en ce moment.

Qu’est ce qu’un système de gestion des versions ?
« Un VCS (Version Control System), est un logiciel permettant de stocker des informations pour une ou plusieurs ressources informatiques permettant de récupérer toutes les versions intermédiaires des ressources, ainsi que les différences entre les versions » … Wikipédia
En plus clair il permet à des développeurs de travailler en parallèle sur un projet, en gardant une arborescence des différentes versions du code source et des différents fichiers de ce projet. A chaque fois qu’une modification est effectuée par un membre de l’équipe, le système enregistre la modification tout en gardant une trace des anciennes versions. Il enregistre également les différences entre les différentes versions.
SVN – Subversion –
Basé sur CVS, l’un des premiers système de gestion des versions, SVN est actuellement de loin le VCS le plus utilisé dans le monde. Ses principaux apports et principes sont :
- Un système centralisé utilisant un seul dépôt (repository) partagé entre les différents membres de l’équipe.
- SVN versionne les fichiers et les répertoires.
- Il permet également le renommage et le déplacement des fichiers et répertoires tout en gardant leur historique.
- Possibilité de merger (fusionner) quelques types de documents en cas de conflits d’accès entre différents utilisateurs.
- …
Les commandes de base à connaître donc pour SVN sont :
- Checkout : pour récupérer en local, les données du dépôt,
- Commit : pour mettre à jour le dépôt avec les modifications que vous avez effectué en local,
- Update : pour mettre à jour votre copie locale, à partir du dépôt,
- Add : pour ajouter des éléments dans le dépôt (lors du prochain commit).
- …
Hébergement de dépôt SVN
Il existe plusieurs services sur le net, vous offrant ainsi la possibilité d’héberger des dépôts SVN. Ceci permet donc à une équipe de travailler à distance sur le même projet (attention la majorité des services gratuits sont pour les applications Open Source) : SourceForge, Assembla, Google Code ….
Clients SVN
Après avoir crée votre dépôt et l’avoir partagé entre les utilisateurs, il est nécessaire à chacun de disposer d’un client SVN pour pouvoir envoyer les différentes commandes au dépôt. Alors la, vous avez vraiment le choix. Voici une liste wikipédia des principaux clients SVN sur tous les OS, tout le monde trouvera son bonheur. Personnellement sur MAC OS j’utilise le SCPlugin qui s’intègre au finder.
Si vous désirez plus de précisions ou d’aide, n’hésitez pas à laisser un commentaire.

Chargement ...


Tutoriels usto » Archive du blog » SVN, Système de gestion de versions
le 16 novembre 2008 à 17:59[...] Source : YouKnowRiad [...]
kik
le 17 novembre 2008 à 20:56Au délà d’un simple outil collaboratif, svn permet certains usages aussi intéressants.
J’en fait personnellement un usage intensif à des fins de backup (le versionnement étant un plus incontestable), mais aussi pour mettre à jour facilement mes sites.
Si vous disposez de suffisamment de place sur un serveur dédié (les dédiés ont souvent bien plus d’espace dd que nécessaire, à la vue de leur processeur), vous pouvez facilement versionner vos répertoire de documents ou de configuration pour facilement les distribuer entre vos machines, et pour pouvoir revenir à un état antérieur. Attention cependant : un répertoire versionné prend le double de place de sa version non versionnée.
En ce qui concerne la mise à jour des sites : svn possède un système de hook qui permet de faire virtuellement n’importe quoi. Les hooks se trouvent sur le serveur, dans le dossier hooks/ du repository. Il s’agit simplement d’executable avec un nom prédéfini et permettant de savoir quand le fichier est executé : pre-commit, start-commit, post-commit, pre-lock, etc. Vous pouvez mettre un binaire ou un script, peut importe le langage, pourvu qu’il soit executable et que le nom corresponde à un hook.
Ce qui permet, donc, de faire un script post-commit qui ira dans le dossier de votre site en production et de le mettre à jour en faisant svn update.
Tout cela n’aura nécessité qu’une chose : faire « svn ci » sur votre machine, ce qui est plutôt moins lourd que devoir faire les transferts par scp ou ftp (il est aussi possible de faire charger des db.sql envoyé grace à ces hooks).