Je me demande à quoi sert ce bouton ?

Published on   Tuesday, August 1, 2006
by  John Garner
Traduction de l'article I Wonder What This Button Does? en français, publié dans le magazine A List Apart, illustration de Kevin Cornell et écrit par Mike West
25, Juillet 2006
Je me demande à quoi sert ce bouton ?

La réaction instantanée à l’échec d’une partie du projet, est généralement la dénégation. Ce fichier n’a pas vraiment était effacé, n’est-ce pas ? Changer la configuration n’a pas réellement endommagé le logiciel, n’est-ce pas ?

Il l’a été. Et cela l'a bien endommagé.

Passons directement les étapes de la colère, du marchandage et de la dépression, d’accord ? Vous avez semé la pagaille, et votre week-end jusque-là excitant, ressemble désormais à une lutte frénétique pour faire en sorte que tout fonctionne de nouveau avant que quelqu’un ne s’en aperçoive.

Un problème ? De quel problème s’agit-il ?

Fort heureusement, de solides solutions techniques existent pour éviter ce genre d’erreur. Un système de contrôle des révisions comme Subversion assure la capacité d’envelopper l’ensemble des fichiers associés au projet et de gérer les changements effectués au fur et à mesure. Finalement, Subversion peut agir comme une machine à remonter le temps: vous ramener comme une flèche à ce moment sublime juste avant que vous ayez ruiné votre samedi.

Mieux encore, vous n’êtes pas la seule personne que Subversion peut aider. Chaque membre de l’équipe peut utiliser Subversion pour modérer les désastres quotidiens qui se produisent lorsque plusieurs personnes tentent de travailler sur un même projet simultanément. Bob et Alice ont tous les deux édités NouvelleChoseCool.html? Pas de problème ! S’ils ont édités des parties distinctes, Subversion peut automatiquement fusionner les changements. Si leurs révisions se chevauchent, Subversion leur notifiera des points précis de conflit (et surtout, le code, cause de conflit) afin que Bob et Alice puissent résoudre le problème au lieu de se ronger les sangs lorsque leur travail assidu vient de disparaître.

Alors, comment cela fonctionne-t-il ?

Etonnamment, peu de votre workflow a besoin de changer lorsque vous passez à un environnement avec contrôle des révisions. Le processus se réduit à quatre étapes fondamentales :

  1. Assurez-vous de travailler avec la version la plus récente du projet.
  2. Faites un peu de travail.
  3. Testez votre travail (et rectifiez les bugs que vous introduisez).
  4. Avertissez tout le monde de vos changements quand vous êtes satisfait.

Vous êtes certainement déjà en train de procéder ainsi, mais le contrôle des révisions rend ces tâches plus faciles.

Restez à jour

Dans le cadre d’un travail d’équipe, il est dangereux de travailler sur des fichiers de projet restés longtemps dans votre ordinateur. D’autres personnes travaillent avec autant d’ardeur que vous, et leurs changements vont éventuellement chevaucher les vôtres. Inévitablement, vous allez écraser le travail de quelqu’un d’autre, ou il écrasera le votre. La pratique incroyablement répandue d’envoyer par email des fichiers compressés est peu efficace, cependant il s’agit d’un compromis inefficace, lourd, ayant tendance à générer des erreurs.

Subversion résout ce problème en créant un lieu de stockage centralisé, appelé ’référentiel’, agissant comme une source partagée où l’équipe retrouve l’ensemble des données du projet. En gérant votre projet depuis le référentiel, vous pouvez suivre l’historique des changements importants quant aux fichiers qui vous intéressent.

Quand je suis prêt à commencer mon travail, je m’assure d’abord auprès de Subversion de la mise à jour des fichiers (On s’y attend, Subversion appelle cette méthode une mise à jour). Il compare ma copie de travail avec la dernière révision du projet dans le référentiel. Si l’un des fichiers est périmé (ou a été effacé accidentellement), il sera automatiquement actualisé avec la dernière et meilleure version.

Une fois ma copie de travail mise à jour, je sais parfaitement quels changements importants ont été faits jusqu’à maintenant, et je peux commencer à travailler sans avoir la crainte d’écraser par inadvertance le travail de quelqu’un d’autre.

Faites votre travail

Désolé, Subversion ne vous aidera pas ici. Tout comme les robots à faire mes devoirs dont j’ai tant rêvé pendant mon enfance, le système de coder-pour-vous avec contrôle des révisions n’apparaîtra que dans quelques années. Ceci dit, Subversion est en mesure de faciliter l’expérimentation et la liberté créative, comme vous avez toujours une copie ’sans danger’ vers laquelle revenir si votre expérience échoue lamentablement.

Testez votre travail

Subversion ne peut pas vous dire si votre code fonctionne, mais il peut être une ressource fiable si vous constatez que le code ne fonctionne pas, ou pire, s’il casse quelque chose qui fonctionnait hier encore.

Vous disposez d’un rapport complet de tous les changements de vos fichiers à portée de main, donc vous pouvez facilement utiliser “diff” pour comparer votre copie de travail (cassée) avec la version (fonctionnelle) précédente pour voir exactement quelles lignes de code vous avez changées. Voir ce qui a été changé est remarquablement utile pour diagnostiquer les problèmes que vous avez créés par inadvertance, étant donné que vous avez limité le problème à un sous-ensemble précis du projet global.

Distribuez votre travail à votre équipe

Quand vous avez terminé un pan important de votre travail, vous devez vous assurer qu’il est sauvegardé dans le référentiel et qu’il est ainsi partagé avec votre équipe. Cette méthode, connue comme un commit (confimer les changements), fusionne les changements que vous avez effectués sur votre copie de travail du référentiel. Ceci garantit non seulement l’accès de chaque membre de l’équipe au travail mais aussi que le code reste enregistré en toute sécurité dans un autre endroit que votre propre ordinateur de bureau, enclin aux désastres.

Surtout, Subversion ne fait pas que de capturer les changements d’une révision à une autre, il capture aussi le contexte en vous permettant ainsi d’annoter librement les changements appliqués. Plutôt que de décharger quelques nouveaux fichiers dans le référentiel et envoyer un email explicatif qui sera oublié une fois lu, vous pouvez sauvegarder le contenu de ces changements directement dans le référentiel. Quand Bob a des questions ou crée accidentellement un conflit avec la révision d’Alice, il peut simplement vérifier le journal des changements (change log). Il peut voir qu’elle a :

  • Ajouté un encadré bien chouette à ’NouvelleChoseCool.html’ et a modifié les règles de style dans ’NouvelleChoseCool.css’ pour l’appliquer.
  • Changé la couleur par défaut en bleu pervenche, suivant la demande du client.

Ces informations, de la plus haute importance sont associées aux fichiers pour être le plus utile. Sauvegarder les raisons des changements avec les fichiers modifiés est nettement mieux qu’un email oublié et constitue une raison suffisante pour implémenter Subversion

Etapes suivantes

Obtenir Subversion est une procédure simple. Récupérez la distribution adaptée à votre système d’opération et installez la. Ceci installera le client et les utilitaires serveur dans votre machine.

Configurer et maintenir un ’véritable’ serveur Subversion en réseau pour votre groupe dépasse le cadre de cet article; c’est vraiment une mission pour votre ’sympathique’ sysadmin ou département informatique. Ceci dit, de nombreux services d’hébergement Web fournissent des référentiels Subversion comme partie intégrante du package d’hébergement, et il y a quelques excellentes sociétés qui se spécialisent dans l’hébergement des référentiels.

Pour le tester rapidement, je vous suggère fortement de lire l’excellent Gestion de projets avec Subversion aux éditions O’Reilly (disponible gratuitement en anglais), ou figure une superbe visite guidée qui accompagne le lecteur dans la méthode de création d’un référentiel hébergé en local, et l’interaction avec celui-ci. Cette visite guidée couvre 80% de votre interaction avec Subversion, et cela vaut bien la peine d’être lu (et acheté, d’ailleurs).

Ressources Additionnelles

Si vous êtes déjà à l’aise avec l’invite de commande, vous serez agréablement surpris par la facilité avec laquelle on peut intégrer Subversion à son travail quotidien. Sinon, il y a de nombreuses GUI (interface graphique utilisateur) qui rendent Subversion facile comme tout pour les personnes peu disposées à ouvrir Terminal et taper svn up tous les matins et svn commit toutes les heures:

  • RapidSVN est une GUI multiplateforme qui regroupe pratiquement tout ce dont vous avez besoin dans une interface plutôt bien agencée.
  • Eschewing une GUI traditionnelle, TortoiseSVN s’intègre directement avec Windows Explorer, offrant un mécanisme intuitif basé sur les fichiers pour garder à jour votre projet.
  • Beaucoup d’éditeurs de texte et IDE (Environnement de développement intégré) peuvent dialoguer directement avec Subversion : Xcode, TextMate, BBEdit, Visual Studio, et Eclipse sont la partie émergée de l’iceberg, vérifier votre favori !

Finalement, Subversion peut faire énormément pour vous mais je ne l’ai pas encore mentionné. Créer des branches, des étiquettes (tags), des procédures automatiques 'après' confirmation (post-commit hooks), et d’autres fonctions décrites en détail dans le livre que j’ai évoqué ci-dessus : Gestion de projets avec Subversion. C’est un regard détaillé sur ce que fait Subversion, comment cela fonctionne, et les recommandations d’usage pour vous en servir dans vos projets.

Learn More

Related Topics: Project Management and Workflow

Discuss

Was it good for you, too? Join the discussion »

A propos de l'auteur

Mike West a abandonné la banlieue des grandes prairies du Texas en 2005 en faveur de la Forêt Noire du sud de l'Allemagne ou il vit et travaille actuellement. Il fait partie de l'équipe éditorial de Digital Web Magazine, et ces songeries à propos du Web sont périodiquement postées sur son site personnel, mikewest.org.

 

Traduction de John Garner avec relecture de Hélène Wokowski et François Blanc-Patin.

 

Translated for and with the permission of A List Apart Magazine and Mike West

crossmenu