Subversion
Un gestionnaire de version permet, comme son nom l’indique, de gérer les différentes versions d’un projet. Il est principalement utilisé pour maintenir le code source ou la documentation d’un logiciel, mais on pourrait, en théorie, l’employer dans bien d’autres domaines, comme par exemple, la conception d’un site web, ou la rédaction d’un rapport.
Le dépôt Subversion garde en mémoire toutes les versions commitées (validées). Il offre ainsi la possibilité de revenir rapidement à un moment particulier du développement, ou de déterminer les différences entre deux versions quelconques. Un gestionnaire de version facilite le travail collaboratif. Plusieurs personnes peuvent en effet travailler en parallèle, et mettre à jour leurs répertoires de travail locaux en fonction des modifications apportées par les autres. Dans le cas de Subversion, le dépôt intégre au mieux les différentes modifications, même si elles portent sur le même fichier. En cas de conflit, par exemple si la même partie du même fichier a été modifiée, le serveur prévient alors l’utilisateur et lui propose plusieurs solutions, comme par exemple, modifier sa version locale, ou celle en ligne.
Outre ces aspects, la plupart des gestionnaires de version proposent des fonctionnalités avancées comme la création de branches. Cela permet, par exemple, de travailler sur la future version d’un logiciel tout en maintenant les versions précédentes. Si un bug est découvert dans certaines versions du logiciel, on pourra facilement appliquer sa correction dans les branches correspondantes.
Un gestionnaire de version est donc un outil quasi indispendable pour un projet mené à plusieurs, mais peut également s’avérer très utile pour un projet personnel dès lors qu’il a atteint une certaine ampleur. Pour faciliter cet usage, la plupart des gestionnaires de version peuvent fonctionner en mode local, sans avoir besoin de mettre en place un serveur.
Le premier gestionnaire de version fut SCCS, développé en 1972. Au début des années 1980, RCS vit le jour. RCS est toujours utilisé à l’heure actuelle, mais le développement de son successeur, CVS, a débuté en 1984. Au début de l’année 2000, l’entreprise CollabNet a souhaité reprendre à zéro le développement d’un gestionnaire de version afin de pallier les limitations de CVS, et a commencé à travailler sur Subversion. Une partie des développeurs de CVS a rejoint le projet. La première version a été publiée début 2004. Il existe d’autres alternatives à CVS. Nous pouvons citer par exemple darcs qui a un fonctionnement différent de celui de CVS ou Subversion. Alors que pour ces derniers, il n’existe qu’un seul dépôt des sources (fonctionnement dit centralisé), pour darcs, chaque copie de travail est un dépôt complet (fonctionnement dit décentralisé).
Les limitations de CVS corrigées par SVN sont les suivantes :
- Les modifications ne sont pas atomiques. Cela signifie que si vous modifiez dix fichiers en une seule transaction et qu’il y a un conflit sur le huitième fichier, les sept premiers seront validés, et le reste rejeté. Lorsque les modifications sur les dix fichier sont liées, les sources peuvent alors se retrouver dans un état non fonctionnel. À l’inverse, Subversion valide soit tout, soit rien ;
- CVS ne connaît pas le renommage des fichiers. Renommer un fichier avec CVS revient à le supprimer puis à le recréer, ce qui a pour effet de perdre son historique, ce n’est plus le cas avec Subversion ;
- Les répertoires et les métadonnées des fichiers ne sont pas versionnés ;
- De plus, les performances ont été ameliorées dans de nombreuses circonstances : création de branches ou d’étiquettes plus rapide, historique des fichiers binaires plus performant, communications client/serveur inutiles supprimées.
Il existe de nombreuses interfaces graphiques permettant d’utiliser Subversion, comme RapidSVN (multiplateforme), ou TortoiseSVN (une extension de l’explorateur Windows). Mais si vous devez utiliser Subversion de manière intensive et régulière, vous gagnerez, au final, un temps considérable en apprenant à vous servir du client SVN en ligne de commande.
Il existe aussi un plugin Eclipse nommé Subclipse supportant SVN, ce qui permet aux développeur utilisant Eclipse de n’avoir qu’une seule interface pour le développement et la gestion de version. Dans le cadre d’une gestion de configuration (Gestion de version et gestion des changements), il est possible de lier subversion à certains outils comme Trac.
La dernière version apporte une meilleure stabilité, un nouveau système de synchronisation de mirroirs (svnsync), le support de la base de donnée BerkeleyDB 4.4(et sa fonction de récupération automatique), et de nouvelles commandes.
Ajouter des tags (séparés par des virgules ou des espaces) : Attention: tous les caractères spéciaux sont interdits (sauf le .). Les tags n'apparaîtront qu'au prochain rafraichissement du cache (dans plusieurs heures).
<< Mettre à jour >>
:: lien mort :: orthographe :: nouveauté :: mise à jour ::
Vous souhaitez mettre à jour la notice ? La première chose à faire est de déterminer s'il s'agit d'une mise à jour mineure ou d'une mise à jour majeure
.
- Mineure : un lien mort, des fautes d'orthographe, un lien à ajouter ou encore une petite précision.
- Majeure : une nouvelle version avec des nouveautés, des changements majeurs.
Commentaires
<< Poster un message >>
:: question :: précision :: avis :: commentaire :: bug ::
Subversion , le 3 juillet 2007 par Beldom (1 rép.)
Bonjour. Je suis actuellement en train d’analyser les possibilités que m’offre SVN afin de savoir s’il peut m’être utile. Or je me retrouve à l’heure actuelle devant un problème : je souhaite créer une version 1.2 par exemple avec des dossiers et des fichiers spécifiques et pas avec tout mon tronc. (Tronc qui en réalité n’existe pas dans ce projet)
Or après lecture de la documentation SVN, de la documentation Tortoise, je ne vois pas comment faire. Autrement qu’une solution assez barbare en ce sens qu’il s’agirait de tout copier puis de supprimer les fichiers non voulus. Mais pour un programme de plus de 600 fichiers, c’est un peu lourd.
Merci d’avance de votre aide !
Subversion , le 11 novembre 2007 par kurgbe
C’est une "erreur" courante de débutants de vouloir copier une partie de leur tronc de peur de gaspiller de l’espace disque. En fait en SVN les fichiers ne sont pas dupliqués mais un lien "dur" est créé entre votre tronc et la version 1.2
C’est un avantage que votre branche/étiquette 1.2 contienne l’entièreté de votre projet. Si par la suite vous devez faire une maintenance de 1.2 il suffira d’en faire une copie locale.
D’autre part si vous voulez créer un projet Y à partir de projet X, il suffit d’exporter le projet X , retirer les fichiers non utiles, ajouter de nouveaux fichiers, .... et puis importer le tout dans SVN.
Finalement si vous voulez créer une nouvelle version de votre projet X (par exemple une variante pour Linux) copiez le tronc complet et dans la nouvelle branche effacer/modifier les fichiers spécifiques à votre nouvelle branche.
Subversion , le 28 février 2007 par amir_pfr (0 rép.)
Bonjour ;
Je souhaite savoir comment labeliser une version (c-a-d l’étiqueter) pour éventuellement récupérer et regénérer une version en Production.
Merci pour votre aide.
abdellah
Informations complémentaires
À la une !
Autres logiciels
Framasoft needs you !
Autres rubriques
Informations générales
Sur le Framablog
Juste une image
nina- Creative Commons BY





