24 Août 2021
Azure DevOps, successeur de Team Foundation Server (TFS), propose toujours les deux systèmes de contrôle de version : Team Foundation Version Control (TFVC) et Git.
Pour faire simple, TFVC est le vieux système, très probablement amené à disparaître, Git est le nouveau, destiné à rester seul en piste.
Bien sûr, la grande question est « quand TFVC va-t-il disparaître ? ». Et le drame, c’est que personne n’en sait rien…
Dans cet article, nous allons voir comment faire pour migrer un projet du système TFVC vers le système Git. C’est très facile !! Comme souvent avec Azure DevOps et la myriade de fonctionnalités qu’il contient, le tout est de savoir où se trouve la fonctionnalité désirée.
Les captures d’écran en anglais sont issues de Azure DevOps Services. Si vous hésitez entre Azure DevOps Services et Azure DevOps Server, voici 5 éléments pour choisir.
Au-delà de la quasi-certitude que TFVC va disparaître, plusieurs raisons peuvent vous pousser à envisager la migration d’anciens projets TFVC vers un système de contrôle de code-source Git.
Mais l’argument ultime et incontestable, c’est la gestion des branches !
Avec TFVC, c’est lourd, très lourd… puisque tout se passe directement sur le référentiel central sur le serveur.
Si vous souhaitez (et c’est recommandé) gérer les développements selon un modèle de branches comme Git flow, comme ci-dessous :
Figure 1 - modèle Git flow
Alors Git est incontournable pour votre projet Azure DevOps !
TFVC et Git permettent tous les deux le contrôle des versions et des sources.
On retrouve comme fonctionnalités communes :
Voyons maintenant les différences.
TFVC est un système de contrôle centralisé
Pour connaître les versions successives de TFS et Azure DevOps, voir l’article TFS/VSTS/azure DevOps : comment s’y retrouver ?
Figure 2 - Projet TFVC avec Team Explorer
Figure 3 - Projet TFVC avec Azure DevOps
Git est un système de contrôle open source et réparti
Figure 4 - projet Git avec Team Explorer
Figure 5 - projet Git avec Azure DevOps
L’opération est très facile car il existe un outil de migration intégré à Azure DevOps. Elle consiste à créer un nouveau Repo Git en important dedans le Repo TFVC.
Voyons comment procéder…
Nous partons donc du projet TFVC que l’on identifie car il n’y a que trois entrées (Files, Changesets, Shelvesets) sous le menu Repos :
Figure 6 - Projet TFVC à migrer vers Git
Comme tout est question de Repository, nous allons dans le menu qui gère tous les Repos d’un projet. Comme indiqué sur la figure ci-dessous :
Figure 7 - Importation d'un Repo Git
En cliquant sur « Import repository », nous accédons à la fenêtre d’importation. Par défaut, le type de Repo est positionné sur Git :
Figure 8 - choix du type de Repo à importer
Or, ce qu’on veut, c’est importer notre Repo TFVC existant pour le migrer vers un Repo Git. En choisissant TFVC comme type de Repo, les choses se précisent :
Figure 9 - import d'un Repo TFVC
Ne reste plus qu’à spécifier les options voulues, notamment la migration de l’historique du code, en précisant une durée en nombre de jours, et, bien sûr, en indiquant un nom pour le Repo Git qui sera créé automatiquement suite à la migration :
Figure 10 - options de migration
Figure 11 - migration de TFVC vers Git en cours...
Sitôt la migration terminée, nous constatons que la liste des Repos de notre projet Azure DevOps contient toujours le Repo TFVC mais aussi maintenant un Repo Git :
Figure 12 - liste des Repos TFVC ou Git
Il suffit alors de sélectionner le Repo Git et de ne plus se préoccuper du Repo TFVC. L’interface Web du projet dans le menu Repo a changé et indique maintenant 6 entrées correspondant à un système Git !
Figure 13 - nouveau Repo Git sur un projet TFVC
En août 2021, la fin de TFVC n’est pas encore programmée. Même si tout le monde pense qu’elle est inéluctable.
On peut donc tout à fait conserver les projets en TFVC pour l’instant. Néanmoins, les nouveaux projets seront plutôt créés avec le système Git. C’est le choix que fait la quasi-totalité des organisations.
Le jour où vous souhaitez migrer un projet de TFVC vers Git, cet article vous donne toutes les clés pour le faire rapidement et facilement.
Bonne migration !