Subversion
Sommaire Introduction 1 - Qu'est-ce qu'un gestionnaire de version 2- Le gestionnaire de version Subversion 3 - Les bases de Subversion 4- Installation du serveur SVN 5- Configuration du serveur 5-1- Création d un dépôt 6- Installation du client TortoiseSVN 7- Utilisation du client TortoiseSVN 8- Quelques commandes de TortoiseSVN Conclusion
Introduction Le développement simultané d un projet informatique à souvent été source de débats. En effet pour la réalisation de ce dernier il fallait impérativement que les principaux concernés soient au même endroit pour sa réalisation et aussi il été difficile d avoir un historique des modifications faites sur le projet ou de remonter à une modification antérieure. Mais avec l avénement des logiciels de gestionnaire de version ces contraintes ont été résolues. C est ainsi que des logiciels tels que CVS, GNU Arch, Bitkeeper, GIT et Subversion entre autres ont été crées. C est sur ce dernier cité que portera notre document. Un dépôt Subversion est l emplacement central où sont stockées toutes les données relatives aux projets gérés. Le dépôt est accédé via une URL locale ou distante, il contient l historique des versions des fichiers stockés, les logs enregistrés lors des modifications, les dates et auteurs de ces modifications, etc.
1 Qu'est-ce qu'un gestionnaire de version Un logiciel de gestion de versions est un logiciel de gestion de configuration 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. Un logiciel de gestion de versions agit sur une arborescence de fichiers afin de conserver toutes les versions des fichiers, ainsi que les différences entre les fichiers. Ce système permet par exemple de mutualiser un développement. Un groupe de développeurs autour d'un même développement se servira de l'outil pour stocker toute évolution du code source.
2- Le gestionnaire de version Subversion Subversion est un gestionnaire de version, c'est-à-dire qu il permet tout au long du cycle de vie de votre logiciel d assurer l historisation des modifications apportées par les développeurs sur un projet. Subversion permet à plusieurs développeurs de travailler simultanément, de gérer les versions spécifiques sans interférer avec les développements courant, de labéliser les versions livrées aux clients, de mettre à jour les modifications apportées par les développeurs, de restaurer l état des sources à n'importe quel instant.
3 - Les bases de Subversion (1/2) Le principe de fonctionnement est très simple, il est basé sur un système client / serveur. Nous allons passer en revue une configuration qui est le plus utilisée.
3 - Les bases de Subversion (2/2) Le principe est le suivant : le serveur garde en mémoire toutes les versions de tous les fichiers qui ont été utilisés sur lui. Ces fichiers utilisés sont les fichiers que l'on veut versionner ; Il n'est pas possible de travailler directement sur les fichiers du serveur. C'est la raison pour laquelle il faut obligatoirement un client dans le système. le client, lui, va télécharger les fichiers à jour sur le serveur afin de pouvoir travailler dessus localement. Une fois qu'il aura fini d'apporter ses modifications, il va envoyer la nouvelle version des fichiers au serveur qui va les stocker pour la personne suivante qui voudrait les utiliser.
4- Installation du serveur SVN(1/3) Ici on a choisi VisualSVN Server. Il y en existe d autres comme Subversion server par exemple. Télécharger le serveur VisualSVN Server puis lancez l'installation... Source: http://www.visualsvn.com/server/dowload
4- Installation du serveur (2/3) Choisir Standard Edition
4- Installation du serveur (3/3) Choisir le répertoire qui va stocker tous les projets au niveau de Repositories.
5- Configuration du serveur (3/4) Voici l interface de Visualsvn server. Tous les projets qu on aura à créer sera stocker dans Repositories. Users comporte tous les utilisateurs du serveur. Groups comporte les groupes d utilisateurs du serveur On va essayer de créer un premier utilisateur: clic droit sur «Users» et cliquer sur «Create User»
5-1- Création d un dépôt (1/3) En général un dépôt correspond à un projet (par exemple le dépôt "MonProjet"), le nommage est libre et vous pouvez en créer autant que nécessaire, cependant un dépôt devra impérativement contenir les sous répertoires suivants: trunk, branches et tags. On va essayer de créer un dépot. clic droit sur «Repositories» et cliquer sur «Create New Repository» et mettez le nom du dépôt Cochez Single Project: là il crée en même temps les trois sous répertoires c est-à-dire : trunk, branches et tags
5-1- Création d un dépôt (2/3) Trunk est le répertoire de travail courant du projet; il contient tout le projet du début jusqu à la fin Tags contient les différentes versions du projet livrés au client Branches contient les nouvelles fonctionnalités du projet; quand on est pas sûr d impacter ses nouvelles fonctionnalités, on crée des branches.
5-1- Création d un dépôt (3/3) Nous avons la possibilité de visualiser ses informations dans un navigateur Clic droit sur le dépôt et choisissez «browse».
6- Installation du client TortoiseSVN Le client subversion est l'application qui permet d'accéder aux dépôts et donc aux sources historisées dans le serveur subversion. Il existe de nombreux clients Subversion, ainsi, Subclipse est un plug-in subversion pour Eclipse, VisualSVN permet d'accéder à un serveur Subversion via l'ide de Visual Studio. Pour ce qui nous concerne, nous choisissons de vous présenter TortoiseSVN qui s'intègre à l'explorateur de Windows. Vous pouvez télécharger la dernière version de TortoiseSVN ici http://tortoisesvn.net/downloads puis exécuter l'installation... Si TortoiseSVN est installé correctement, vous devez pouvoir le visualiser en cliquant sur le bouton droit de la souris dans l'explorateur de Windows.
7- Utilisation du client TortoiseSVN (1/3) En 1er lieu il faut récupérer les sources historisées coté serveur et les stocker en local sur son disque dur afin de pouvoir travailler dessus. Créer un répertoire en local et faites clic droit et SVN Checkout Contrôler votre copie locale Vous devez voir les répertoires que nous avons créés lors de l'installation du serveur
7- Utilisation du client TortoiseSVN (2/3) Nous avons récupéré notre dépôt mais celui-ci ne contient toujours pas de sources, il faut donc les ajouter. Pour cela supposons que notre projet contienne 2 fichiers texte (fichier1.txt, fichier2.txt). La première opération consiste à ajouter ces fichiers au TRUNK (notre répertoire de travail courant). Sélectionner ces fichiers et clic droit et sélectionner : TortoiseSVN puis Add Attention à cette étape subversion n'a rien ajouté car il attend la validation de la transaction (comme une base de donnée transactionnelle attend un COMMIT) Apres faites toujours clic droit et SVN Commit (ici l'ajout est effectif ) Important : lors de l'exécution de la commande "SVN Commit" le client envoie les sources locales vers le serveur SVN pour archivage, celui-ci est ensuite capable de restituer les sources à n'importe quel client subversion connecté au dépôt et qui exécuterait la commande "SVN Update".
7- Utilisation du client TortoiseSVN (3/3) Vérifions si les fichiers ont été ajouté au serveur. Allez dans le navigateur et actualiser Dans le répertoire trunk, nous voyons bien les fichiers texte crée
8- Quelques commandes de TortoiseSVN (1/2) Checkout : permet de créer votre copie locale du dépôt complet la première fois Check for modifications : permet de vérifier que votre copie locale est bien la version la plus récente disponible, et vous indique quelles sont les différences avec votre version le cas échéant Update : permet de mettre à jour votre copie locale (n écrase pas vos modifications s il y a des différences, vous devrez «merger» manuellement) Update to revision : permet de revenir à la version de votre choix Diff : permet de voir les différences entre 2 fichiers sélectionnés, ou entre le fichier sélectionné et la version du dépôt SVN. Cela vous permettra de fusionner proprement vos modifications avec celles du serveur SVN (si vous avez travaillé à plusieurs sur un même fichier simultanément, vous pourrez comparer les deux versions et fusionner à la main le contenu) Commit : permet d envoyer vos modifications au serveur SVN (n oubliez pas de faire un update avant pour éviter les conflits) Add : permet d ajouter un fichier ou un répertoire qui n était pas répertorié sur le dépôt, lors du prochain commit
8- Quelques commandes de TortoiseSVN (2/2) Delete : permet de supprimer un fichier ou un répertoire lors du prochain commit Revert : permet d annuler un changement de statut (add, delete, ) avant le prochain commit (une fois commité il est trop tard) Rename : permet de renommer un fichier proprement, mais aussi de le déplacer (par exemple en le nommant «dossier/fichier.ext» il descendra dans «dossier») Clean up : permet de régler les conflits lorsqu il y en a Add to ignore list : permet de spécifier qu un fichier de la copie locale ne doit pas être ajouté au dépôt. Export : permet d obtenir une copie locale propre (sans répertoires.svn) afin de la publier sur un FTP par exemple. Toutes ces commandes sont disponibles à partir du clic droit sur un fichier ou un dossier. (Vous pouvez ajouter ou supprimer ces commandes dans «TortoiseSVN >
Conclusion Subversion est un système optimiste d archivage (versionnage) et de partage de fichiers entre utilisateurs. Subversion autorise plus d une personne à modifier un même fichier en même temps. Ce système suppose que les conflits de modifications sont rares. Si deux utilisateurs du dépôt modifient des parties non communes d un fichier, les outils optimistes fusionnent tout simplement les modifications. Inversement, dans le cas de modifications conflictuelles, le conflit doit être résolu manuellement. À l opposé des systèmes optimistes, il existe le modèle de réservation de fichiers.ce principe accorde l exclusivité de modification à une unique personne. Ainsi une question importante doit être soulevé: quel système de gestion de version peut être considéré comme le meilleur?
Webographie https:// openclassrooms.com/courses/gerez-vos-projets-a-l-aide-du-gestionnaire-de-versions-subversion http://perso.esiee.fr/~perretb/docs/memosvn.pdf http://liris.cnrs.fr/mepp/download/tutoriel%20tortoisesvn.pdf http://www.blogdugeek.fr/subversion-gestion-de-conflit-dans-svn-avec-totoisesvn/