Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > Environnements de développement > Gérez vos projets à l'aide du gestionnaire de versions Subversion > Les bases - Utilisations des clients > Un gestionnaire de version ... > Lecture du tutoriel

Un gestionnaire de version ...

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : Dalshim
Note : 20 / 20 (2 votes)
Visualisations : 5 553

Plus d'informations Plus d'informations
Plutôt que de foncer tête baissée dans la documentation et tout le reste, il faut déjà connaître la base.

Nous allons donc faire un peu de "blabla" pour comprendre de quoi il s'agit. J'essaierai de faire le plus court possible pour que vous puissiez passer à la pratique le plus tôt possible, mais il faut bien comprendre que la théorie est indispensable si vous voulez comprendre quelque chose. Si l'on ne comprend pas ce qu'il se passe (le fond des choses), alors on ne comprend rien. Le but de ce chapitre est de vous présenter l'architecture afin que vous compreniez ce qu'il se passe sur chaque machine lors de la pratique.

Assez parlé, allons-y !
Sommaire du chapitre :
Icône du chapitre
Sommaire Chapitre suivant

A quoi ça sert ?!

Comme l'indique le titre du chapitre, Subversion (que je nommerai souvent par son abréviation SVN) est un système de gestion de versions des fichiers. :waw:
Quoi ? Ça ne vous épate pas ? C'est vrai que présenté comme ça, le produit ne donne pas vraiment envie. C'est pourtant ce que c'est ! Mais, rassurez-vous, je n'aurais pas entamé un big-tuto juste pour vous présenter un bête gestionnaire de versions, j'aurais écrit deux lignes dans un mini-tuto qui n'aurait jamais été validé et puis il serait parti à la poubelle. Non, le but est donc bien de vous présenter un gestionnaire de versions intelligent.

Tout d'abord, une petite définition du système de gestion de versions. Faisons un petit tour sur Wikipedia, nous obtenons le résultat suivant :

Citation : Wikipedia
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.


Moi j'ai un gestionnaire de versions sur mon ordinateur que je trouve très complet !
Qu'est ce que SVN peut m'apporter en plus ?

Soyons clair, comme gestionnaire de versions personnel sur votre ordinateur, SVN ne va probablement pas vous apporter grand chose.

Mais ne soyez pas déçu, il fait en fait bien plus que de la simple gestion de versions. Dès que vous serez plusieurs et/ou mobile(s), il va devenir très intéressant.

Premièrement, sachez qu'il est possible de l'utiliser en ligne. Les fichiers que l'on veut versionner peuvent donc être accessibles via un réseau (par exemple Internet). C'est là que les choses deviennent intéressantes ! Du fait que tout soit disponible à l'aide d'une connexion Internet, il est donc permis à plusieurs personnes d'utiliser ce système en même temps... Je ne sais pas si vous vous rendez compte, mais c'est extrêmement puissant pour le travail en équipe (surtout si l'équipe est dispersée).

Le principe de fonctionnement est très simple, il est basé sur un système client/serveur "basique". Nous allons passer en revue trois configurations standard.

Première configuration : un ordinateur client et serveur



Ordinateur serveur et client


Ce cas n'est pas souvent utilisé (personnellement, je ne l'ai jamais vu). Comme on peut le voir sur le dessin, le même ordinateur sert à la fois de serveur pour stocker toutes les données, et de client pour la présentation des données.

Deuxième configuration : deux ordinateurs en LAN



Serveur et client en LAN


Ce cas est déjà plus courant, mais ce n'est pas non plus le plus utilisé. On peut tout de même se rendre compte qu'il n'est pas obligatoire de passer par Internet.

Troisième configuration : le serveur et le client sont tous les deux connectés à Internet



Serveur et client connecté à Internet


Ce cas est le plus fréquemment utilisé, et c'est d'ailleurs là que SVN montre toute sa puissance. Déjà, on voit que, du fait du passage par le net, le client peut utiliser ses données où qu'il soit, du moment qu'il possède une connexion Internet. Mais ce n'est pas tout ! Vous aurez compris que le serveur et le client ne sont pas au même endroit géographique... Le serveur agit donc également comme serveur de backup, des fois qu'une bombe atterrisse sur votre ordinateur personnel et que vous perdiez toutes vos données.

Si je vous ai présenté les trois configurations, c'est aussi pour vous montrer qu'on peut les fusionner (à partir de maintenant, à la place de fusionner, je vais employer le terme merger pour vous habituer au vocabulaire SVN - anglais en gros). Comme je vous l'ai dit, il est possible pour plusieurs personnes d'utiliser le système en même temps, ce qui peut nous donner (par exemple) le schéma suivant :

configuration possible


Ceci est bien sûr un exemple ! Tout dépend de qui doit pouvoir accéder aux fichiers et les lire et/ou les modifier.

OK, génial, on peut mettre plusieurs ordinateurs, mais comment ça marche et quel est le rôle de chacun ?

Le principe est le suivant :

Et voila, ce n'est pas plus compliqué que ça. Toute la théorie est là, si vous avez bien compris le rôle de chacun, alors vous avez tout compris. Pour ceux qui n'ont pas encore bien saisi, voici un petit schéma explicatif.

Exemple d'utilisation du SVN


  • Mais pourquoi le nom du fichier change-t-il ?
  • Et pourquoi reste-t-il les versions v0 et v1 sur le serveur et pas sur le client ?
  • Et puis comment le Client2 sait que le Client1 a renvoyé le fichier au serveur ? Que se passe-t-il s'il le prend avant que le client 1 ne le renvoie ?
  • Et puis c'est naze ce truc, je fais la même chose avec un serveur FTP ! Il apporte quoi en plus le logiciel ?


OLA !!! Une chose à la fois petit scarabée Zér0. Ce schéma n'est pas exhaustif et est aussi très simplifié et idéalisé pour bien comprendre. Je vais répondre aux questions une par une.

Les noms de fichiers ne changent pas en réalité, j'ai juste ajouté la version à coté pour bien comprendre que le fichier v1 (version 1) avait été changé par rapport à la v0 (version 0) (correction des fautes d'orthographe par exemple). Donc le nom de fichier ne change jamais (sauf si vous le demandez explicitement).

Comme je vous l'ai dit plus haut, le serveur sert de source de données alors que les clients ne sont là que pour afficher à l'utilisateur ce dont il a envie (donc besoin). Les clients ne possèdent donc que les derniers fichiers (ceux qui sont à jour) sauf demande explicite de leur part. Le serveur, en revanche, doit pouvoir envoyer au client n'importe quelle version s'il le demande. Il est donc normal qu'il possède toutes les versions de tous les fichiers.

Le Client2 récupère le fichier après que le Client1 l'a remis sur le serveur. Bien sûr ce n'est que la présentation du cas idéal, rassurez-vous, SVN gère le cas où le Client2 récupère le fichier avant que le Client1 ne le renvoie, mais on verra ce cas plus tard.

Il est vrai que pour le cas de figure que je vous ai présenté, un serveur FTP ferait l'affaire. Ce qui fait la puissance de SVN est sa gestion des conflits lorsque deux personnes modifient un même fichier chacune de leur côté et essaient de remettre les deux versions différentes sur le serveur (on appelle ça un conflit). Enfin bref, il est vrai que beaucoup de chose pourraient être faites par un serveur FTP, à une chose près, c'est que SVN fait ça automatiquement, il n'y a donc qu'à cliquer sur un seul bouton (allez peut-être deux) pour mettre tout le projet à jour.

Quelles contraintes techniques (windows, mac, linux)

On peut maintenant se poser la question des contraintes techniques.
Que faut-il pour faire fonctionner le système ?

Comme on l'a vu, il faut un serveur (une machine avec un serveur Subversion installé), mais aussi un client (une machine, éventuellement la même, avec un client Subversion installé).

Pour vous rassurer dès maintenant, comme vous avez pu le voir dans l'introduction du tuto, on peut faire fonctionner SVN sur Mac, Linux et Windows, comme ça il n'y aura pas de jaloux.

Mais est ce qu'il faut que le client et le serveur tournent sur le même système d'exploitation ?

Non bien sûr que non, aucune contrainte entre le client et le serveur, si ce n'est qu'ils doivent être connectés l'un à l'autre (qu'importe le moyen).

Vous voyez donc qu'on peut faire cohabiter les trois systèmes d'exploitation sur le même projet.
Attention, malgré ce que je viens de dire, il y a une petite subtilité. Pour les utilisateurs de Mac (et sans doute de Linux), étant donné les différences d'encodage entre les différents systèmes d'exploitation, il y a souvent des problèmes liés aux accents et caractères spéciaux. :( Ainsi, pour être sûr de ne jamais faire de gaffe, prenez l'habitude de ne pas mettre de caractères spéciaux dans vos noms de fichier !!! ^^


Tout ce que je viens de dire concerne les clients Subversion, pensons également au serveur !
Dans la deuxième ou troisième partie du tuto (dépendant de la façon dont je vais organiser les chapitres par la suite), je vais expliquer comment installer un serveur Subversion, ça vous servira alors.



Et pour le côté serveur, pas de jaloux non plus, Subversion fonctionne sur les trois.

Et enfin, parce que les évolutions arrivent vite, je vous renvoie au site du projet pour que vous voyiez s'il n'y a pas des nouveautés (comme par exemple l'exportation sous Windows). Vous pourrez également trouver tous les systèmes d'exploitation compatibles.


Donc voila, bilan : pour l'instant, comme on ne touche pas encore au côté serveur, il n'y a pas de problème de compatibilité entre les systèmes d'exploitation ni entre les programmes. Chacun pourra donc faire ce qu'il veut sur sa machine sans affecter les autres si vous respectez la règle des accents et caractères spéciaux dans les noms de fichier.

Quels outils

Les outils sont nombreux, malheureusement pour vous, je ne vais en présenter que quelques-uns (un par système d'exploitation). Je présenterai ceux qui, je pense, sont les plus faciles d'utilisation pour tout le monde et les plus pédagogiques. La raison de ce raccourci est simple, il vous suffit d'aller sur cette page pour vous convaincre qu'il y a beaucoup de clients disponibles quel que soit le système d'exploitation. Ce à quoi j'ajouterai que le principe restera toujours le même, donc une fois que vous aurez compris le fonctionnement d'un client et acquis le vocabulaire, il vous sera très facile de passer d'un client à l'autre.

Alors mon choix vous semblera peut être bizarre :


WAAA, BOUH, trop nul, le terminal c'est pour les geeks ! Pourquoi se compliquer la vie quand on a des clients graphiques ?

Comme je vous l'ai dit, Subversion n'est pas quelque chose de compliqué à utiliser, et si je présente le client graphique seulement pour Windows c'est parce que je voulais en montrer un et que TortoiseSVN est extrèmement bien fait. Donc, voilà ! Ce à quoi j'ajouterai que :
  1. pour avoir essayé un client graphique sous Mac, la ligne de commande est, je trouve, plus pratique et rapide ;
  2. le but est avant tout pédagogique, et justement, le terminal est plus pédagogique et vous comprendrez mieux parce qu'il faudra utiliser les termes du milieu ;
  3. c'est moi le boss :D ;
  4. si vous savez utiliser la ligne de commande, vous savez utiliser un client graphique !

Voila, comme promis après ce chapitre on va pouvoir commencer la pratique et la manipulation des applications, rendez vous au chapitre suivant...
Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 13/05/2008 à 14:06:06
Modifié : le 11/11/2008 à 13:04:19
Avancement : 100%
Licence : Creative Commons BY-SA

L'orthographe, la grammaire et la présentation de ce tutoriel ont été vérifiées par les zCorrecteurs.

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 307 Zéros connectés | Requêtes SQL 9 requêtes | Temps de génération de la page : Total (SQL) 0.0336s (0.0172s)