Vous êtes ici : Accueil > Brock ’N Brol > Informatique > Outils de développement > Subversion, une présentation rapide
Publié : 29 août 2007
Format PDF Enregistrer au format PDF

Subversion, une présentation rapide

traduction "sous version"

Suite à une question de Charlotte, je me suis lancé dans une explication de ce qu’est subversion.

Voir :
- Wikipedia sur subversion
- le site officiel

- Q. : > Dis-moi si c’est facile à utiliser
- R. : Ce n’est pas vraiment facile, ni vraiment difficile.

C’est un peu comme LaTeX : au début, on se demande se qu’on fait dans cette galère ; mais une fois qu’on y a goûté, on ne sait plus s’en passer !

Le "truc" en fait est de bien comprendre la logique, alors c’est clair.

C’est un outil pour gérer du code !

Il s’agit de gérer des versions de documents et plusieurs personnes peuvent travailler sur les mêmes fichiers. C’est un outil pour gérer du code, pas un gestionnaire de fichiers !

Ainsi en LaTeX, je ne "versionne" que les fichiers sources (.tex ou les images .eps ...) PAS les dvi, toc, aux, ps, pdf...

Il y a un serveur central où l’historique des modifications est enregistré.

- On commence par "lancer" un projet : Mon beau livre de math

- On y ajoute une première version de fichiers.

- Ensuite, l’auteur 1 va chercher sur le serveur les fichiers "géométrie(1,2,3...)".tex  [1] (au hasard !) et commence à les modifier. (ajouter des choses, corriger des fautes de frappes, ajouter d’autres fichiers.) - L’auteur 2, elle, va chercher sur le serveur les fichiers "analyse(1,2,3...)".tex et commence à les modifier. (ajouter des choses, ...)
- Quand ils sont contents, ils vont "déposer"  [2] leur travail sur le serveur qui enregistre les modifications par rapport aux versions précédentes : modifications, ajouts, retraits, nouveaux fichiers...

- Avant de se remettre au boulot, l’auteur 1 désire se synchroniser avec le boulot de l’auteur 2 et aller chercher les nouveautés sur le serveur. [3]

- L’auteur 2 fait de même.

- Parfois ils ont travaillé tous deux sur le même fichier et le programme les prévient qu’il y a un problème : dans le vocabulaire du versionnement, un "conflit". Voir cet excellent article sur le site du loria : Que faire en cas de conflits pointés par subversion

Moi, j’utilise cette logique là pour synchroniser mon laptop et mon desktop. Je ne dois pas me souvenir de quels fichiers ont été modifiés sur quelle machine. Je fais "comme si" j’étais mon auteur 1 sur le laptop et l’auteur 2 sur l’autre machine.

Subversion se charge de "mettre" les fichiers modifiés sur mon laptop sur le serveur et d’aller chercher sur ce même serveur les fichiers modifiés uniquement sur le laptop.

Il existe d’autres outils de versionnement :

RCS, CVS, arch, git ...

Subversion est un des plus modernes et des plus complets. Tous enregistrent non pas les fichiers mais les différences par rapport aux fichiers précédents et permettent éventuellemnt de reculer de 3 ou 5 ou 15 "pas" en arrière.

Avant j’utilisais CVS mais Subversion permet une chose que CVS ne sait pas faire : effacer, déplacer et renommer des fichiers et des dossiers. C’est beaucoup plus efficace : on a le droit à l’erreur.

Notes

[1] On appele ça un "Check Out" dans le vocabulaire du versionnement. COMMANDE : "svn co"

[2] On appele ça un "Commit" dans le vocabulaire du versionnement. COMMANDE : "svn ci"

[3] On appele ça un "update" dans le vocabulaire du versionnement. COMMANDE : "svn up"