Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Vous pouvez migrer du code à partir d’un dépôt TFVC (Team Foundation Version Control) existant vers un nouveau dépôt Git au sein de la même organisation. La migration vers Git est un processus impliqué pour les grands dépôts et équipes TFVC. Les systèmes de contrôle de version centralisés, comme TFVC, se comportent différemment de Git de manière fondamentale. Le commutateur implique beaucoup plus que d’apprendre de nouvelles commandes. Il s’agit d’un changement perturbant qui nécessite une planification minutieuse. Vous devez réfléchir à ce qui suit :
- Révision des outils et des processus
- Suppression de fichiers binaires et d’exécutables
- Formation de votre équipe
Prerequisites
| Catégorie | Spécifications |
|---|---|
| Accès au projet | Membre d’un projet. |
| Permissions | - Afficher le code dans des projets privés : accès au moins de base . - Clonez ou contribuez au code dans des projets privés : membre du groupe de sécurité Contributeurs ou autorisations correspondantes dans le projet. - Définir des autorisations de branche ou de référentiel : gérer les autorisations pour la branche ou le référentiel. - Modifier la branche par défaut : modifiez les autorisations des stratégies pour le référentiel. - Importez un référentiel : membre du groupe de sécurité Administrateurs de projet ou de l’autorisation Créer au niveau du projet Git surAutoriser. Pour plus d'informations, voir Définir les autorisations de référentiel Git. |
| Services | Dépôts activés. |
| Outils | Optional. Utilisez les commandes az repos : Azure DevOps CLI. |
Note
Dans les projets publics, les utilisateurs disposant d’un accès aux parties prenantes ont un accès complet à Azure Repos, notamment l’affichage, le clonage et la contribution au code.
| Catégorie | Spécifications |
|---|---|
| Accès au projet | Membre d’un projet. |
| Permissions | - Afficher le code : Accès de base au moins. - Cloner ou contribuer au code : membre du groupe de sécurité Contributeurs ou autorisations correspondantes dans le projet. |
| Services | Dépôts activés. |
Nous vous recommandons vivement de lire le contrôle de version centralisé sur Git et la section Migrer de TFVC vers Git avant de commencer la migration.
L’expérience d’importation est idéale pour les petits référentiels TFVC simples. Il convient également aux dépôts qui sont déjà propres, comme décrit dans le contrôle de version centralisé vers Git et la section Migrate de TFVC vers Git . Ces sections recommandent également d’autres outils pour des configurations de référentiel TFVC plus avancées.
Important
En raison des différences dans la façon dont TFVC et Git stockent l’historique des contrôles de version, nous vous recommandons de ne pas migrer votre historique, c’est-à-dire l’approche que Microsoft a adoptée lors de la migration de Windows et d’autres produits du contrôle de version centralisé vers Git.
Importer le référentiel
Sélectionnez Dépôts, Fichiers.
Dans la liste déroulante du dépôt, sélectionnez Importer le référentiel.
Sélectionnez TFVC dans la liste déroulante Type de source
Tapez le chemin d’accès au référentiel / branche / dossier que vous souhaitez importer dans le référentiel Git. Par exemple,
$/Fabrikam/FabrikamWebsiteSi vous souhaitez migrer l’historique à partir du référentiel TFVC, sélectionnez Migrer l’historique et sélectionnez le nombre de jours. Vous pouvez migrer jusqu’à 180 jours d’historique à partir du jeu de modifications le plus récent. Un lien vers le référentiel TFVC est ajouté dans le message de validation du premier ensemble de modifications migré vers Git, ce qui facilite la recherche d’un historique plus ancien si nécessaire.
Donnez un nom au nouveau dépôt Git et sélectionnez Importer. Selon la taille de l’importation, votre dépôt Git est prêt en quelques minutes.
Résolution des problèmes
Cette expérience est optimisée pour les petits référentiels TFVC simples ou les référentiels préparés pour une migration. Cela signifie qu’il présente quelques limitations.
- Il migre uniquement le contenu de la racine ou d’une branche. Par exemple, si vous avez un projet TFVC sur
$/Fabrikamlequel se trouve une branche et un dossier sous celui-ci, un chemin d’accès à importer$/Fabrikamimporterait le dossier alors qu’il$/Fabrikam/<branch>n’importerait que la branche. - Le référentiel importé et l’historique associé (si importé) ne peuvent pas dépasser 1 Go de taille.
- Vous pouvez importer jusqu’à 180 jours d’historique.
Si l’une des informations répertoriées précédemment est un bloqueur pour votre importation, nous vous recommandons d’essayer des outils externes tels que Git-TFS pour l’importation et la lecture de nos livre blancs - Contrôle de version centralisé sur Git et la section Migration suivante de TFVC vers Git .
Important
L’utilisation d’outils externes tels que Git-TFS avec des produits, services ou plateformes Microsoft est entièrement responsable de l’utilisateur. Microsoft n’approuve pas, ne prend pas en charge ou garantit la fonctionnalité, la fiabilité ou la sécurité de ces extensions non-Microsoft.
Migrer de TFVC vers Git
Avant de migrer le code source d’un système de contrôle de version centralisé vers Git, comprenez les différences entre les deux et préparez la migration.
Spécifications
Pour faciliter les migrations, il existe de nombreuses exigences avant de suivre la procédure d’importation du dépôt dans la section précédente de cet article.
- Migrez une seule branche. Lors de la planification de la migration, choisissez une nouvelle stratégie de branchement pour Git. La migration uniquement de la branche principale prend en charge un flux de travail basé sur une branche de rubrique comme Gitflow ou GitHub Flow.
- Effectuez une migration de conseil, comme dans le cas, importez uniquement la dernière version du code source. Si l’historique TFVC est simple, vous pouvez choisir de migrer un certain historique, jusqu’à 180 jours, afin que l’équipe puisse travailler uniquement hors de Git. Pour plus d’informations, consultez Planifier votre migration vers Git.
- Excluez les ressources binaires telles que les images, les jeux de données scientifiques ou les modèles de jeu du référentiel. Ces ressources doivent utiliser l’extension Git LFS (Stockage de fichiers volumineux), que l’outil d’importation ne configure pas.
- Conservez le référentiel importé en dessous de 1 Go de taille.
Si le référentiel ne répond pas à ces exigences, utilisez l’outilGit-TFS pour effectuer votre migration à la place.
Important
L’utilisation d’outils externes tels que Git-TFS avec des produits, services ou plateformes Microsoft est entièrement responsable de l’utilisateur. Microsoft n’approuve pas, ne prend pas en charge ou garantit la fonctionnalité, la fiabilité ou la sécurité de ces extensions non-Microsoft.
Migrate
Le processus de migration à partir de TFVC est simple :
- Consultez la dernière version de la branche à partir de TFVC sur votre disque local.
- Supprimez les fichiers binaires et générez des outils du référentiel et configurez un système de gestion de package comme NuGet.
-
Convertir des directives de configuration spécifiques au contrôle de version . Par exemple, convertissez
.tfignoredes fichiers.gitignoreen fichiers et convertissez.tpattributesdes fichiers en.gitattributes. - Vérifiez les modifications et effectuez la migration vers Git.
Les étapes 1 à 3 sont facultatives. S’il n’existe pas de fichiers binaires dans le référentiel et qu’il n’est pas nécessaire de configurer un .gitignore ou un .gitattributes, vous pouvez passer directement à l’étape Vérifier les modifications et effectuer l’étape de migration .
Consultez la dernière version
Créez un espace de travail et mappez un dossier de travail pour le répertoire du serveur en cours de migration vers Git. Cette action ne nécessite pas de mappage complet de dossiers de travail. Seuls les dossiers mappés qui contiennent des fichiers binaires à supprimer du référentiel et des dossiers qui contiennent des fichiers de configuration spécifiques au système comme .tfignore.
Une fois les mappages configurés, obtenez le dossier localement :
tf get /version:T /recursive
Supprimer des fichiers binaires et des outils de génération
Étant donné que Git stocke l’historique des fichiers modifiés en fournissant une copie de chaque fichier de l’historique à chaque développeur, la vérification des fichiers binaires directement dans le référentiel peut entraîner une croissance rapide du référentiel et entraîner des problèmes de performances.
Pour créer des outils et des dépendances tels que des bibliothèques, adoptez une solution d’empaquetage avec prise en charge du contrôle de version, telle que NuGet. De nombreux outils et bibliothèques open source sont déjà disponibles dans la galerie NuGet, mais pour les dépendances propriétaires, créez de nouveaux packages NuGet.
Une fois que les dépendances sont déplacées dans NuGet, assurez-vous qu’elles ne sont pas incluses dans le référentiel Git en les ajoutant à .gitignore.
Convertir la configuration spécifique au contrôle de version
Team Foundation Version Control fournit un .tfignore fichier, qui garantit que certains fichiers ne sont pas ajoutés au dépôt TFVC. Vous pouvez utiliser le .tfignore fichier pour les fichiers générés automatiquement, comme la sortie de build, afin qu’ils ne soient pas archivés accidentellement.
Si le projet s’appuie sur ce comportement, convertissez le .tfignore fichier en fichier .gitignore .
Les clients TFVC multiplateformes prennent également en charge un .tpattributes fichier qui contrôle la façon dont les fichiers sont placés sur le disque local ou archivés dans le référentiel. Si un .tpattributes fichier est en cours d’utilisation, convertissez-le en .gitattributes fichier.
Vérifier les modifications et effectuer la migration
Vérifiez les modifications qui suppriment les fichiers binaires, migrez vers la gestion des packages ou convertissez la configuration spécifique au contrôle de version. Une fois que vous apportez cette dernière modification dans TFVC, vous pouvez effectuer l’importation.
Migrations avancées
L’outilGit-TFS est un pont bidirectionnel entre TFVS et Git, et vous pouvez l’utiliser pour effectuer une migration. Git-TFS convient à une migration avec un historique complet, plus de 180 jours que l’outil Import prend en charge. Vous pouvez également utiliser Git-TFS pour tenter une migration qui inclut plusieurs branches et relations de fusion.
Avant de tenter une migration avec Git-TFS, tenez compte des différences fondamentales suivantes entre la façon dont TFVC et l’historique du magasin Git sont les suivants :
- Git stocke l’historique en tant qu’instantané du référentiel dans le temps, tandis que TFVC enregistre les opérations discrètes qui se sont produites sur un fichier. Les types de modification dans TFVC comme renommer, annuler la suppression et restaurer ne peuvent pas être exprimés dans Git. Au lieu de voir que ce fichier a été renommé en fichier
AB, il effectue uniquement le suivi de ce fichierAa été supprimé et le fichierBa été ajouté dans la même validation. - Git n’a pas d’analogue direct d’une étiquette TFVC. Les étiquettes peuvent contenir n’importe quel nombre de fichiers à n’importe quelle version spécifique et refléter des fichiers à différentes versions. Bien que conceptuellement similaires, les balises Git pointent vers un instantané de l’ensemble du référentiel à un moment donné. Si le projet s’appuie sur des étiquettes TFVC pour savoir ce qui a été remis, les balises Git peuvent ne pas fournir ces informations.
- Les fusions dans TFVC se produisent au niveau du fichier, et non au niveau du référentiel entier. Seul un sous-ensemble de fichiers modifiés peut être fusionné d’une branche à une autre. Les fichiers modifiés restants peuvent ensuite être fusionnés dans un ensemble de modifications ultérieur. Dans Git, une fusion affecte l’ensemble du référentiel, et les deux ensembles de modifications individuelles ne peuvent pas être considérés comme une fusion.
En raison de ces différences, nous vous recommandons d’effectuer une migration de conseil et de conserver votre dépôt TFVC en ligne, mais en lecture seule, afin d’afficher l’historique.
Pour tenter une migration avancée avec Git-TFS, consultez cloner une branche unique avec l’historique ou cloner toutes les branches avec l’historique de fusion.
Important
L’utilisation d’outils externes tels que Git-TFS avec des produits, services ou plateformes Microsoft est entièrement responsable de l’utilisateur. Microsoft n’approuve pas, ne prend pas en charge ou garantit la fonctionnalité, la fiabilité ou la sécurité de ces extensions non-Microsoft.
Mettre à jour le flux de travail
Le passage d’un système de contrôle de version centralisé à Git ne consiste pas seulement à migrer du code. L’équipe a besoin d’une formation pour comprendre comment Git est différent du système de contrôle de version existant et comment ces différences affectent le travail quotidien.
En savoir plus sur la migration du contrôle de version centralisé vers Git.