Qu’est-ce que Team Foundation Version Control ?

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Quelle que soit la taille de votre projet logiciel, nous vous conseillons d’appliquer la gestion de versions le plus tôt possible. Les systèmes de gestion de version sont constitués de logiciels qui vous aident à suivre les modifications que vous apportez dans votre code au fil du temps. Lorsque vous modifiez votre code, vous indiquez au système de gestion de version de prendre une instantané de vos fichiers. Le système de gestion de version enregistre cette capture instantanée définitivement afin que vous puissiez la rappeler ultérieurement si nécessaire.

Azure DevOps Services et TFS fournissent deux modèles de gestion de versions : Git, qui est un modèle distribué, et Team Foundation Version Control (TFVC), qui est un modèle centralisé. Cet article fournit une vue d’ensemble de TFVC et décrit les premiers pas à effectuer pour l’utiliser. Si vous décidez du type de gestion de version Azure DevOps Services/TFS à utiliser, consultez Choisir la gestion de version appropriée pour votre projet.

Pourquoi utiliser la gestion de version ?

Sans la gestion de version, vous êtes tenté de conserver plusieurs copies de code sur votre ordinateur. C’est dangereux, car il est facile de modifier ou de supprimer un fichier dans une copie incorrecte du code, et vous risquez de perdre du travail. Les systèmes de gestion de version résolvent ce problème en gérant toutes les versions de votre code, mais en vous présentant une seule version à la fois.

Les systèmes de gestion de version offrent les avantages suivants :

  • Création de flux de travail - Les flux de travail de gestion de version évitent le chaos dans lequel chacun utilise son processus de développement avec des outils différents et incompatibles. Les systèmes de gestion de version fournissent des autorisations et une mise en œuvre des processus, de sorte que tout le monde reste sur la même page.
  • Utilisation des versions - Chaque version présente une description de ce que font les modifications apportées à la version, par exemple corriger un bogue ou ajouter une fonctionnalité. Ces descriptions vous aident à suivre les modifications apportées à votre code par version plutôt que par des modifications de fichiers individuelles. Le code stocké dans les versions peut être affiché et restauré à partir du contrôle de version à tout moment en fonction des besoins. Cela facilite la base du nouveau travail sur n’importe quelle version de code.
  • Code conjoint - La gestion de version synchronise les versions et vérifie que vos modifications ne sont pas en conflit avec d’autres modifications de votre équipe. Votre équipe s’appuie sur la gestion de version pour aider à résoudre et à éviter les conflits, même lorsque les utilisateurs effectuent des modifications en même temps.
  • Conservation d’un historique - La gestion de version conserve un historique des modifications à mesure que votre équipe enregistre les nouvelles versions de votre code. Cet historique peut être consulté pour savoir qui, pourquoi et quand des modifications ont été apportées. L’historique vous donne la certitude de l’expérience puisque vous pouvez revenir à une version correcte précédente à tout moment. L’historique vous permet de baser votre travail sur n’importe quelle version de code, par exemple pour corriger un bogue dans une version précédente.
  • Tâches automatisées - Les fonctionnalités d’automatisation de gestion de version font gagner du temps à votre équipe et génèrent des résultats cohérents. Vous pouvez automatiser les tests, l’analyse du code et le déploiement lorsque de nouvelles versions sont enregistrées dans la gestion de version.

Il existe de nombreuses tâches chronophages pour développeur : la reproduction de bogues, l’apprentissage de nouveaux outils et l’ajout de nouvelles fonctionnalités ou de nouveaux contenus. À mesure que les demandes de vos utilisateurs évoluent, la gestion de version permet à votre équipe de travailler ensemble et d’être dans les temps.

Contrôle de version Team Foundation

TFVC est un système de gestion de version centralisé. En général, les membres de l’équipe ont une seule version de chaque fichier sur leurs ordinateurs de développement. Les données d'historique sont conservées sur le serveur uniquement. Les branches sont basées sur le chemin d'accès et créées sur le serveur.

TFVC vous permet d’appliquer les autorisations granulaires et de restreindre l’accès à un niveau fichier. Votre équipe archivant tout son travail dans Azure DevOps Server, vous pouvez facilement auditer les modifications et identifier l’utilisateur ayant archivé un ensemble de modifications. À l’aide des fonctionnalités de comparaison et d’annotation, vous pouvez identifier les modifications exactes effectuées.

Démarrages rapides

Commencez par créer un projet, configurer votre espace de travail, réviser et partager votre code. Vous pouvez utiliser l’un de ces clients ou IDE :

Didacticiels pas à pas

Découvrez les principes de base pour travailler dans TFVC avec le tutoriel suivant, qui montre une journée dans la vie d’un développeur DevOps qui utilise Visual Studio et TFVC.

Que voulez-vous faire ?

  • Configurer votre ordinateur de développement et démarrer

    Passez quelques minutes pour installer votre ordinateur de développement et tirer parti de tous les avantages du codebase à version contrôlée.

  • Choisir votre modèle de flux de travail - serveur ou espaces de travail locaux

    • Espaces de travail de serveur – Avant d’effectuer des modifications, les membres de l’équipe extraient publiquement les fichiers. La plupart des opérations nécessitent que les développeurs soient connectés au serveur. Ce système facilite le verrouillage des flux de travail. Visual Source Safe, Perforce et CVS sont d'autres systèmes qui fonctionnent de la même manière. Avec les espaces de travail serveur, vous pouvez effectuer un scale-up jusqu’à des codebases très volumineux avec des millions de fichiers par branche et des fichiers binaires volumineux.

    • Espaces de travail locaux - Chaque membre de l’équipe dispose d’une copie de la dernière version du codebase et travaille hors connexion si nécessaire. Les développeurs archivent leurs modifications et résolvent les conflits, si nécessaire. Subversion est un autre système qui fonctionne de la même façon.

  • Développer votre application dans un code base sous contrôle de version

    Il n’est pas nécessaire de tenir compte de la gestion de version dans la plupart des situations. Le système vous aide quand vous devez gérer et comprendre vos modifications.

  • Interrompre votre travail

    Vous devez parfois mettre de côté tout ou partie du travail exécuté. Votre système de contrôle de version peut alléger le travail et réduire le temps gaspillé par les interruptions.

  • Apporter votre travail à l’équipe

    Archivez vos modifications pour que votre équipe puisse générer, tester et diffuser la valeur que vous avez créée.

  • Isoler les risques

    Utilisez des branches et des verrous pour isoler les risques introduits par le travail effectué par différentes équipes.

  • Afficher et gérer les versions précédentes

    Le système de contrôle de version vous permet de revenir en arrière pour obtenir des informations détaillées concernant les modifications apportées à vos fichiers.

  • Comparer les dossiers et les fichiers

    Vous pouvez comparer des dossiers serveur et des dossiers locaux entre eux, puis afficher les différences entre le contenu de chaque dossier.

  • Résoudre les conflits du contrôle de version Team Foundation

    Un avantage majeur d'utiliser le contrôle de version est que plusieurs personnes peuvent travailler simultanément sur un fichier. Un inconvénient est que quelquefois vous devez résoudre les conflits. Bien qu'il puisse être frustrant de rencontrer des conflits, le système fournit de la documentation et des outils pour vous aider à comprendre et à résoudre les conflits.

  • Utiliser des verrous du contrôle de version

    Lorsque vous devez empêcher l'extraction et l'altération d'un fichier ou d'un dossier, vous pouvez le verrouiller.

Opérations disponibles uniquement à partir de la ligne de commande tf

Le tableau suivant répertorie les tâches pour TFVC que vous pouvez effectuer uniquement à l’invite de commandes à l’aide de l’outil en ligne de commande tf.

Tâche Commande
Supprimer l’espace de travail d’un autre utilisateur. workspace avec l’option /delete
Annuler l’extraction effectuée par un autre utilisateur. undo
Supprimer le verrouillage d’un autre utilisateur. lock
Définir la portée de l’étiquette. label
Effectuer une fusion sans base. merge
Détruire définitivement le contenu. destroy
Restaurer l’effet d’un ou de plusieurs ensembles de modifications. rollback