mercredi 2 septembre 2009

TFS 2010 – Les nouveautés du contrôleur de code source

La version 2010 de TFS fourmille de nouveautés. Je vous propose aujourd’hui de se concentrer sur les apports concernant la gestion des configurations : le contrôleur de code source.

Un vrai effort a été produit sur cette nouvelle version afin de mieux répondre aux attentes des développeurs et des chefs de projet concernant le travail parallèle. On ne parle pas ici de multi thread mais de gestion des versions d’une applications qui doivent vivre en parallèle, ou tout simplement, du travail simultané de n développeurs sur le même projet.

Le gestionnaire de configuration de TFS 2010 fournit les fonctionnalités classiques déjà présentes dans la version 2008, je vous propose de nous concentrer sur la gestion des branches qui a subit un sérieux lifting et sur des nouvelles fonctionnalités comme le “ChangeSet Tracking”.

L’idée de cet article n’est pas de vous convaincre de l’intérêt des branches, ceux qui ont été confrontés à la gestion des versions d’une application sont déjà convaincu.

Par contre, lors de l’utilisation de ces branches dans la version TFS 2008, plusieurs difficultés se présentaient:

  • Différencier une branche et un dossier dans l’UI
  • Avoir l’historique de la constitution d’une branche
  • Savoir exactement le contenu d’une branche par rapport à une autre
  • Faire un Rollback sur une fusion
  • Gérer finement les autorisations sur les différentes branches

Afin de répondre à ces problématiques plusieurs fonctionnalités ont été mises en place sur TFS 2010.

La gestion des branches

Tout d’abord, le truc bête mais très utile, on a maintenant des icones qui permettent de différencier de manière visuelle les branches des dossiers.

Pic2

De plus, nous avons la possibilité de convertir un dossier en branche.

Pic1

Pic3

Une fois nos différentes branches crées, nous avons à notre disposition un ensemble d’outils permettant:

  • De brancher à nouveau
  • De fusionner avec d’autres branches
  • De consulter la hiérarchie des branches de manière visuelle
  • De modifier le parent d’une branche
  • De consulter l’historique d’une branche

Pic4

Autre point intéressant concernant la dite branche, nous disposons d’une fenêtre de propriété beaucoup plus complète permettant entre autre:

  • D’avoir toutes les informations détaillées de la branches

Pic7

  • D’avoir une visualisation concernant les liens de parenté de la branches

Pic6

  • De pouvoir définir les autorisations sur la branches

Pic5

Les outils de comparaisons se sont aussi étoffés et proposent davantage de possibilités:

  • Comparaison locales ou serveurs
  • Choix du type de source (dernières versions, label, …)
  • Filtrage des types de fichiers à comparer
  • Option de visualisation (identique, différent, …)

Pic8

De plus, la possibilité de consulter l’historique de la branche permet d’accéder à l’ensemble des “Changesets” (jeu de modification issue de l’archivage) qui la constitue. En plus des opérations classiques sur ces “Changesets”, la nouvelle interface de VS 2010 introduit un concept très intéressant qui est le “Changeset Tracking”.

Pic9

Le Changeset Tracking

Un des gros inconvénients de la version 2008, lors de l’utilisation des branches, était d’arriver à savoir si une modification apportée sur une branche, l’avait été aussi sur d’autres.

En effet prenons un exemple concret, vous continuez à développer d’autres fonctionnalités d’une application qui est déjà livrée en production. Un utilisateur vous appelle pour vous signaler un Bug (pas bien !!!), vous faites la correction et attendez la prochaine livraison pour la mettre à disposition. Après la livraison, vous constatez que le Bug persiste alors que vous aviez corrigé. La conclusion est donc que votre modification n’a pas été intégré dans les différentes opérations de fusion.

VS 2010 propose donc un mécanisme simple vous permettant de suivre la propagation de vos corrections ou modifications dans l’ensemble des branches de votre projet : le Changeset Tracking.

A partir de l’historique, vous pouvez repérer le jeu de modifications que vous souhaitez suivre et ainsi visuellement, contrôler son intégration dans l’ensemble des branches. Les branches qui contiennent les modifications apparaitront en vert alors que les autres, en rouge, vous alerte sur le fait que vos corrections n’ont pas été appliquées.

Vous aurez à votre disposition:

  • Une vue hiérarchique

Pic11

  • Une vue chronologique

Pic12

Pour finir, en plus de ces fonctionnalités de contrôles visuels, vous pourrez effectuer votre opérations de fusion de manière graphique en faisant un cliquer-glisser du Changetset de la branche source vers la branche cible pour effectuer votre fusion.

Pic13

En conclusion, de gros efforts ont été entrepris pour faciliter le travail de l’équipe de développement. Néanmoins ces outils ne remplaceront pas certaines bonnes pratiques qu’il faut mettre en place comme :

  • L’utilisation réfléchie des branches (suivant votre contexte)
  • Le regroupement de correction ou de fonctionnalités dans un seul “Archivage” (ne pas archiver à chaque ligne modifiée… si vous n’avez pas confiance en votre disque dur, utilisez le Shelving)
  • Le commentaire et l’association à un Workitem de vos archivages

Aucun commentaire:

Enregistrer un commentaire