avr

23

La gestion des versions

Par Martin

Nous allons aborder aujourd’hui un point souvent méconnu du développeur non professionnel, mais pourtant relativement simple à aborder, et très utile : La gestion de version.

Arbre seul dans la campagne
Photo de Eduardo Amorim depuis Flickr

Présentation

La gestion de version de fichiers informatique permet de garder une trace de toutes les versions d’un fichier et de toutes les modifications qui y ont été apportées. Cela permet notamment de revenir en arrière en cas d’erreur.
Pour gérer efficacement ces différentes versions on s’appuie sur un protocole et un logiciel dédié à cette tâche.
Il en existe beaucoup, chacun avec ses avantages et ses inconvénients. Nous étudierons plus particulièrement Subversion, SVN en abrégé, qui est très bien adapté au développement web et l’un des plus utilisé dans le domaine. De plus il est gratuit et Open-Source.

Définition

Historique

Le projet Subversion a été lancé en février 2000 par CollabNet. Il a été conçu pour remplacer CVS. Ses auteurs s’appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est le bon, et que seule son implémentation est en cause.
Ainsi Subversion apporte des nouveautés sur le renommage des fichiers, le versionnage des méta-données, et l’attribution d’un numéro de révision identique à l’ensemble du dépôt.

A quoi ca sert ?

Basiquement, cela permet de garder une trace des différentes versions de chaque fichier de votre site. A chaque fois que vous validez une modification, un nouveau numéro de révision est attribué à votre projet.
Les commentaires sur chaque action permettent de suivre l’évolution du projet. Vous pouvez ainsi visualiser les différences entre deux révisions du site. Vous gardez une trace de toutes les versions de votre site.
Vous pouvez travailler sur plusieurs versions de votre site grâce au concept de « branches ».

Mais cela ne s’arrête pas là ! En effet, toute personne ayant accès au serveur peut selon ses droits, récupérer ou modifier les fichiers. Vous pouvez ainsi travailler à plusieurs sur le même projet. Chacun fait ses propres modifications, un outil permet de « mixer » les modifications d’un même fichier au cas ou vous modifieriez les mêmes portions de code.
N’oubliez pas de mettre régulièrement votre projet à jour afin de bénéficier au plus tôt des modifications des autres membres du projet.

Comment apprendre ?

Le logiciel « TortoiseSVN » sous Windows existe en français, et il est assez intuitif, et vous comprendrez rapidement les principes de base. Mais pour une utilisation plus poussée, la documentation du site Internet de subversion et les deux livres suivants devraient vous aider.

Les auteurs de Subversion proposent un livre en anglais disponible. Un tutoriel sous forme de livre en français est également disponible. Il est intéressant de noter que ces deux ressources sont gratuites.

Vous trouverez un lien dans la section Bibliographie

La Foire Aux Questions répondra à la plupart de vos questions :

Et bien sûr vous trouverez aussi beaucoup d’aide sur les communautés qui gravitent autour du projet Subversion :

Les bonnes pratiques

Pour bien vous y retrouver, pensez toujours à :

  • Mettre des commentaires à chacune de vos actions (ajout, suppression…)
  • Valider les modifications de façon atomique (une nouvelle révision pour chaque nouvelle fonctionnalité ou bug corrigé)
  • Mettez à jour votre projet le plus régulièrement possible
  • Éviter de travailler sur les mêmes portions de code, quand cela est possible
  • Faire un tag de la révision courante quand une nouvelle version du site est mise en production de façon à garder une trace des modifications

Applications tierces

Les logiciels de gestion de version s’intègrent souvent facilement avec d’autre outils, pour la gestion de projet notamment, ou le suivi de bug, l’ajout de fonctionnalités…

Trac par exemple est un système Open Source de gestion complète de projet par Internet, développé en Python offre ainsi dans une interface web un wiki, un suivi des révisions, une gestion des bugs…

Via le service Beanstalk décrit ci-dessous, vous pouvez même tenir au courant toute l’équipe de développement via twitter. Ils proposent aussi des intégrations avec les outils suivants : Basecamp, Campfire, FogBugz, Lighthouse, Freckle et Harvest.

Serveurs

Pour la partie serveur, celle qui stockera effectivement les différentes versions, deux solutions s’offrent à vous. Héberger vous même votre serveur ou dédier cette tâches à un prestataire de service.

Solution locale

Si vous décidez d’héberger vous même votre serveur SVN et si vous partagez ce projet à plusieurs, cela implique que votre serveur reste accessible en permanence, si c’est pour un usage strictement personnel, vous pouvez l’avoir sur votre propre machine, mais attention, en cas de problème sur votre disque dur, vous perdrez tout.

Solution externalisées

Les offres que je vous présente ont l’avantage d’être gratuite, du moins pour l’offre de base.
Il faut noter que les deux premiers acceptent des projets non libres, alors que c’est une obligation pour les autres.
Notons aussi que Tux Family peut aussi vous proposer un hébergement pour votre projet.

Logiciels les plus utilisés

Ligne de commande

Subversion s’utilise très bien en ligne de commande, mais les néophytes de la console, préfèrerons probablement un environnement graphique.

Clients lourds

Il en existe pour tout type de plateforme, le plus abouti étant à mon avis TortoiseSVN qui s’intègre directement dans le gestionnaire de fichiers de Windows.

Plugins pour Eclipse

Pour plus de souplesse lors de vos développements, des plugins existent pour la plupart des IDE du marché. Restons sur les logiciels libres et gratuits, puisque qu’Eclipse permet l’intégration de Subversion avec deux plugins au choix :

Mais il en existe aussi pour plein d’autres logiciels d’édition.

Migration

Si votre dépôt de source utilise un autre protocole, vous pourrez toujours le convertir pour l’importer dans Subversion.

Bibliographie

Voilà, j’espère que vous comprenez l’intérêt des logiciels de gestion de version, que vous avez trouvé tout ce dont vous avez besoin pour élargir vos connaissances, et aussi que vous allez pouvoir m’apprendre encore plus sur le sujet. J’attends vos commentaires.

Sur le même thème

Laisser un commentaire