Choix de la gestion de version appropriée pour votre projet

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. Azure Repos prend en charge deux types de contrôle de version : Git et Team Foundation Version Control (TFVC).

Quel système de contrôle de version dois-je utiliser ?

Git est le fournisseur de gestion de versions par défaut pour les nouveaux projets. Vous devez utiliser Git pour le contrôle de version dans vos projets et commencer à déplacer vos projets TFVC existants vers Git. TFVC est considéré comme une fonctionnalité complète. Azure DevOps maintient la compatibilité avec TFVC, mais Git recevra tous les investissements futurs.

Vous pouvez utiliser des référentiels TFVC avec Git dans le même projet. Il est donc facile d’ajouter TFVC ultérieurement si vous avez besoin d’un contrôle de version centralisé. Pour configurer un nouveau type de référentiel pour un projet existant utilisez ces instructions.

Git (distribué)

Git est un système de contrôle de version distribué. Chaque développeur dispose d’une copie du dépôt source sur son ordinateur de développement. Les développeurs peuvent valider chaque ensemble de modifications sur leur ordinateur de développement, exécuter des opérations de contrôle liées à l'historique et effectuer des comparaisons sans connexion réseau. Les branches sont simplifiées. Lorsque vous devez basculer entre les contextes, vous pouvez créer une branche locale privée. Vous pouvez rapidement basculer d'une branche à une autre pour pivoter entre différentes variantes de votre code base. Ultérieurement, vous pourrez fusionner, publier ou supprimer la branche.

Notes

Git dans Visual Studio, Azure DevOps Services et Azure DevOps Server est Git standard. Vous pouvez utiliser Visual Studio avec les services Git tiers, et vous pouvez également utiliser des clients Git tiers avec Azure DevOps Server.

Pour plus d’informations, consultez Git et Azure Repos.

TFVC (centralisé)

Le contrôle de version Team Foundation (TFVC, Team Foundation Version Control) est un système de contrôle 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 possède deux modèles de flux de travail :

  • 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.

Pour plus d’informations, consultez Qu’est-ce que Team Foundation Version Control ?

Passage de TFVC à Git

Si vous avez des référentiels TFVC existants, vous pouvez les migrer vers des référentiels Git à l’aide de l’outil git-tfs. L’outil vous permet de migrer un référentiel TFVC vers un référentiel Git en quelques commandes seulement.

Fonctionnalités Git et TFVC

Le tableau suivant fournit un résumé de la façon dont TFVC et Git prennent en charge les fonctionnalités principales du contrôle de version.

Fonctionnalité

TFVC

Git


Modifications

Les membres de l'équipe peuvent modifier simultanément des fichiers sur leur ordinateur de développement. Téléchargez (archivez) des ensembles de modifications vers le serveur après création. Vous pouvez télécharger vos modifications à tout moment. Toutefois, vous pouvez être interrompu par des conflits.

Vous pouvez modifier le commentaire d'un ensemble de modifications après l'avoir archivé. Vous pouvez lier des ensembles de modifications aux éléments de travail et les associer à des builds terminées.

Les membres de l'équipe peuvent modifier simultanément des fichiers sur leur ordinateur de développement. Vous créez des validations sur votre ordinateur de développement sans les partager avec l'équipe. Lorsque vous êtes prêt, vous devez extraire les dernières validations avant de télécharger (effectuer un push) les vôtres vers le serveur. Lorsque vous effectuez un push, vous pouvez être interrompu par des conflits.

Vous pouvez modifier la dernière validation locale. Vous ne pouvez pas modifier les validations plus anciennes. Vous pouvez lier des validations aux éléments de travail et les associer à des builds terminées.

Vous pouvez modifier et associer des validations locales à partir de l'invite de commandes.

Création de branche

Les branches basées sur le chemin d'accès sont principalement utilisées comme des constructions de longue date pour isoler les risques de modification entre les équipes dédiées et les versions. Les membres de l'équipe installent en général un espace de travail différent pour chaque branche sur laquelle ils travaillent.

Les modifications de chaque branche sont indépendantes, donc vous ne devez pas les archiver avant de passer d'une branche à une autre. La fusion entre des branches sœurs requiert une fusion sans base.

Vous pouvez visualiser vos structures de branche et déterminer où vos ensembles de modifications ont été fusionnés.

Consultez Utiliser les branches pour isoler le risque dans Team Foundation Version Control.

La création de branche est simplifiée avec des chemins d'accès indépendants. De nombreux développeurs créent une branche pour chaque nouvelle fonctionnalité ayant fait l'objet d'un codage, parfois quotidiennement. Vous pouvez rapidement basculer d'une branche à une autre pour pivoter entre différentes variantes de votre code base. Vous pouvez créer des branches qui existent uniquement sur votre ordinateur de développement et les partager lorsque vous êtes prêt.
Vous devez valider, créer une branche, masquer ou annuler les modifications avant de basculer entre les branches. La fusion est simple et indépendante de la validation sur laquelle la branche est basée. Vous pouvez comparer les branches pour consulter les validations existantes sur les branches.

Consultez Utiliser les branches Git pour changer de contexte, suspendre un travail et isoler le risque.

Résolution de conflits

Il se peut que vous deviez résoudre des conflits lorsque vous effectuez des opérations d'obtention, d'archivage, de fusion ou de déréservation. Vous pouvez résoudre tous les types de conflits dans Visual Studio.

Vous devrez peut-être résoudre des conflits lorsque vous effectuez un push ou une fusion. Vous pouvez résoudre les conflits de contenu dans Visual Studio ou à partir de l’invite de commandes.

Stockage Fichier

Vous pouvez archiver de grands fichiers binaires. Vous pouvez également utiliser NuGet en association ou comme alternative.

Vous pouvez archiver de petits fichiers binaires comme vous le feriez pour les fichiers standard. Lorsque vous utilisez des fichiers binaires volumineux, utilisez Git-LFS pour stocker vos fichiers binaires volumineux dans Azure Repos.

Historique

L'historique du fichier n'est pas répliqué sur l'ordinateur de développement client et ne peut être consulté que si vous êtes connecté au serveur. Vous pouvez consulter l'historique dans Visual Studio et sur le portail Web. Vous pouvez annoter des fichiers pour identifier qui a modifié une ligne et à quel moment elle l'a été.

L'historique du fichier est répliqué sur l'ordinateur de développement client et peut être consulté même si vous n'êtes pas connecté au serveur. Vous pouvez consulter l'historique dans Visual Studio et sur le portail Web. Vous pouvez annoter des fichiers pour identifier qui a modifié une ligne et à quel moment elle l'a été.

Baliser vos fichiers

Vous pouvez appliquer des étiquettes à une version d'un ou de plusieurs fichiers Visual Studio ou de l'invite de commandes. Chaque fichier peut avoir une étiquette appliquée à une version différente.

Vous pouvez appliquer des balises à partir de l'invite de commandes à chaque validation. Affichez les balises dans la fenêtre d'historique de Visual Studio.

Restaurer les modifications

Vous pouvez rétablir une validation.

Scale

Vous pouvez travailler sur des projets à petite ou à très grande échelle à l'aide des espaces de travail locaux. Les projets à échelle massive (des millions de fichiers par branche et des fichiers binaires volumineux) sont pris en charge à l'aide des espaces de travail du serveur.

Vous pouvez rapidement démarrer les petits projets. Vous pouvez effectuer une mise à l'échelle vers de grands projets, mais vous devez prévoir d'organiser votre code base. Vous pouvez créer plusieurs référentiels dans un projet.

Serveur

Le tableau suivant récapitule les fonctionnalités disponibles avec les serveurs pris en charge pour chacun des systèmes de contrôle de version.

Fonctionnalité

TFVC

Git


Serveur

Azure DevOps Services, Azure DevOps Server

Azure DevOps Services, Azure DevOps Server et Git services tiers

Alertes

Les membres de l'équipe peuvent recevoir des alertes par courrier électronique lorsque des validations font l'objet d'un push vers le serveur.

Capacité d'audit

Parce que votre équipe archive son travail sur un système centralisé, vous pouvez identifier l'utilisateur qui a effectué l'opération dans un ensemble de modifications et utiliser la fonctionnalité de comparaison pour voir ce qu'il a changé. En consultant un fichier, vous pouvez effectuer des annotations pour identifier qui a modifié un bloc de code et à quel moment l'opération a été réalisée.

Vous pouvez identifier l'utilisateur qui a effectué le push d'une validation. (N’importe qui peut revendiquer n’importe quelle identité en tant qu’auteur ou personne ayant effectué la validation.) Vous pouvez identifier quand des modifications ont été apportées et ce qui a été modifié à l’aide de l’historique, comparer et annoter.

Builds (automatisées par TFBuild)

Vous pouvez utiliser toutes les fonctions de TFBuild pour générer la combinaison de contenu souhaitée dans la collection de projets.

Vous pouvez utiliser la plupart des fonctions de TFBuild pour générer un projet à la fois, et un ou plusieurs référentiels à la fois.

Examens du code

Consultez Journée dans la vie d’un développeur devops : interruption du travail, correction d’un bogue et revue du code. Pour des discussions plus légères, vous pouvez également commenter et envoyer un e-mail au sujet d’un ensemble de modifications à partir du portail web.

Consultez Vérifier les demandes de tirage. Pour des discussions plus légères, vous pouvez également commenter et envoyer un e-mail à propos d’une validation à partir du portail web.

Fichiers

Chaque projet contient tous les fichiers sous un chemin d'accès racine unique (par exemple : $/FabrikamTFVC). Vous pouvez accorder des autorisations au niveau du fichier. Vous pouvez verrouiller les fichiers.

Vous pouvez parcourir vos fichiers à l'aide du portail Web et de l'Explorateur du contrôle de code source dans Visual Studio.

Votre projet existe sur un seul serveur.

Chaque projet peut contenir un ou plusieurs référentiels Git et chaque référentiel Git peut contenir une ou plusieurs branches. Les autorisations les plus précises que vous pouvez appliquer concernent un référentiel ou une branche. Les fichiers ne peuvent pas être verrouillés.

Vous pouvez parcourir les fichiers sur le portail Web.

Vous pouvez effectuer un push des validations vers plusieurs référentiels distants, par exemple vers le référentiel de votre projet et vers votre site web hébergé sur Azure.

Niveaux de qualité

Vous pouvez utiliser des builds d’intégration continue (CI), des builds d’archivage contrôlées et des stratégies d’archivage.

Vous pouvez utiliser des builds CI et des builds d’archivage contrôlées via des stratégies de branche.

Client

Le tableau suivant récapitule les fonctionnalités prises en charge par le client disponibles en fonction du système de contrôle de version que vous sélectionnez.

Fonctionnalité

TFVC

Git


Logiciel client

Visual Studio

Visual Studio, Visual Studio Code, Eclipse et d’autres outils tiers

Fichiers

Vous pouvez parcourir les fichiers à l'aide de l'Explorateur du contrôle de code source dans Visual Studio ou de l'Explorateur de fichiers Windows, ou encore, l'invite de commandes.

Vous pouvez parcourir les fichiers à l'aide de l'Explorateur de fichiers Windows ou de l'invite de commandes.

Gérer le travail sur votre ordinateur de développement

Pages Modifications en attente et Mon travail dans Visual Studio Team Explorer.

Pages Modifications, Validations et Branches.

Interrompre votre travail

Vous pouvez suspendre le travail à partir de la page Mon travail ou Réserver vos modifications dans la page Modifications en attente. Pour plus d’informations, consultez Suspendre votre travail et gérer vos jeux de réservations.

Vous pouvez créer une branche à partir de Visual Studio ou de l'invite de commandes ou masquer vos modifications à partir de l'invite de commandes.

Compatibilité de Visual Studio

Vous pouvez utiliser toutes les versions prises en charge de Visual Studio.

Vous pouvez utiliser toutes les versions prises en charge de Visual Studio.

Portail web

Vous pouvez parcourir votre code base (y compris les branches), consulter l'historique, annoter et commenter les ensembles de modifications et les jeux de réservations, et effectuer d'autres tâches telles que le téléchargement ad hoc de certaines parties de votre code base, comme un fichier .zip.

Vous pouvez parcourir votre code base, consulter l'historique, comparer les branches, annoter et commenter les validations, et effectuer d'autres tâches telles que le téléchargement ad hoc de certaines parties de votre code base, comme un fichier .zip.

Migration

Pour savoir comment migrer de TFVC vers Git, consultez Migrer de TFVC vers Git.