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.
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.
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 :
Vous êtes certainement déjà en train de procéder ainsi, mais le contrôle des révisions rend ces tâches plus faciles.
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.
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.
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.
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 :
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
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).
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:
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.
Related Topics: Project Management and Workflow
Was it good for you, too? Join the discussion »