Déplacer des dépôts Git vers un autre projet avec un historique de fidélité totale

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

Logo Git

Si vous envisagez de consolider plusieurs projets Azure DevOps en un seul, vous vous demandez probablement ce que vous devez faire avec tous les référentiels :

  • Devez-vous déplacer des projets ou les fusionner ?
  • Devez-vous conserver l’historique ou simplement les projets les plus récents ?

Prerequisites

Catégorie Spécifications
Accès au projet Membre d’un projet.
Permissions - Afficher le code dans des projets privés : au moins un accès niveau de base.
- Clonez ou contribuez au code de projets privés : membre du groupe de sécurité "Contributeurs" ou disposant des autorisations correspondantes dans le projet.
- Définir des autorisations de branche ou de référentiel : les autorisations de gestion sont des autorisations pour la branche ou le référentiel.
- Modifier la branche par défaut : les politiques d'édition sont des autorisations pour le référentiel.
- Importez un référentiel : membre du groupe de sécurité Administrateurs de projet ou détenteur de l’autorisation Créer un référentiel au niveau du projet Git avec la permission Autoriser. Pour plus d’informations, consultez Définir des autorisations de dépôt Git.
Services Dépôts activés.
Outils Optional. Utilisez 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 : au moins un accès de base.
- Cloner ou contribuer au code : membre du groupe de sécurité Contributeurs ou autorisations correspondantes dans le projet.
Services Dépôts activés.

Quel est le scénario ?

Comme indiqué, vous devez déplacer le référentiel MigrationDemo de FabrikamOld vers le nouveau projet d'équipe Fabrikam.

Capture d’écran illustrant le scénario de migration de dépôt.

Comment puis-je me déplacer ?

Vous avez deux options de déplacement, comme indiqué ici. La fonctionnalité d’importation est plus facile, mais elle est disponible uniquement dans Azure DevOps Services et Team Foundation Server 2017 Update 1 et versions ultérieures.

Utiliser la fonctionnalité Importer un référentiel Git

Lorsque vous utilisez la fonctionnalité Importer un référentiel, vous pouvez importer un dépôt Git dans votre projet d’équipe à partir de Team Foundation Server, d’Azure Repos ou d’un autre fournisseur de code source Git comme GitHub. Pour plus d’informations, consultez Importer un dépôt Git dans un projet.

Migrer manuellement le référentiel Git

Créer un dépôt Git vide

Dans l’Explorateur CODE, sélectionnez le nom du dépôt. Sélectionnez Nouveau référentiel dans la liste, sélectionnez Git comme type et donnez-lui un nom.

Capture d’écran montrant la création d’un dépôt.

Une fois le dépôt créé, des instructions pas à pas s’affichent pour vous aider à commencer. Copiez l’URL de clonage dans le presse-papiers.

Capture d’écran montrant le volet pour ajouter de nouvelles informations de dépôt.

Important

Désactivez l'option Créer automatiquement des liens pour les éléments de travail mentionnés dans un commentaire de validation si vous prévoyez d’importer à partir d’une autre collection de projets ou d’un dépôt Git étranger. Sinon, Azure DevOps associe les commits aux éléments de travail existants des projets d'équipe qui ne sont pas liés au sein de la collection de projets d'équipe.

Capture d’écran montrant les nouvelles options de dépôt.

Mettre en miroir le référentiel

Passez à une invite de commandes pour développeur et accédez au dépôt local (source) du dépôt MigrationDemo situé dans FabrikamOld. Exécutez la commande git clone --mirror à l'aide de l'URL de clonage. La ligne de commande est git clone --mirror https://demo-fabrikam.visualstudio.com/DefaultCollection/Fabrikam/_git/MigrationDemo.

La clone --mirror commande est redondante dans ce cas, car le référentiel distant est nu. Il est utilisé ici comme un moyen sûr et facile de configurer la télécommande.

Capture d’écran montrant que la commande De clone Git est effectuée.

Envoyer (push) le dépôt

Exécutez la git push commande pour envoyer (push) les modifications locales vers le référentiel distant (cible).

Capture d’écran montrant que la commande Push Git est effectuée.

L’option --mirror est utilisée avec les commandes clone et push. L’option garantit que toutes les branches et autres attributs sont répliqués dans le nouveau référentiel.

Valider le nouveau référentiel

Basculez vers le portail web Azure DevOps et validez le nouveau référentiel et l’historique dans le hub CODE .

Capture d’écran montrant la validation du dépôt dans l’Explorateur CODE.

Vérifiez que toutes vos branches ont été déplacées vers le nouveau dépôt.

Configurer le nouveau dépôt

Vérifiez que les autorisations et les stratégies sont correctement configurées pour le nouveau dépôt. Vous pouvez configurer la sécurité après avoir créé un dépôt Git vide ou à ce stade. Reconfigurez vos builds pour vous connecter au nouveau dépôt. Enfin, informez les utilisateurs du dépôt d'origine de mettre à jour leurs dépôts distants dans Visual Studio ou en exécutant la commande git remote set-url origin.

> git remote set-url origin https://demo-fabrikam.visualstudio.com/DefaultCollection/Fabrikam/_git/MigrationDemo

Important

N’oubliez pas de nettoyer le projet d’origine en supprimant le dépôt (soyez prudent, il n’y a pas d’annulation) ou en verrouillant les branches afin que personne ne le met à jour accidentellement.

Pour plus d’informations sur la planification des regroupements de projets d’équipe et des projets d’équipe, consultez TFS Planning, Disaster Avoidance and Recovery et TFS on Azure IaaS Guide.