Close

Synchronize Git repositories

Il est très facile de synchroniser votre dépôt Git avec de nouveaux commits dans le dépôt SVN original. Ceci procure une période de transition confortable dans le processus de migration pendant laquelle vous pouvez continuer à utiliser votre workflow SVN existant, tout en commençant à explorer Git.

Il est possible de synchroniser dans les deux directions. Cependant, nous recommandons une synchronisation unidirectionnelle de SVN vers Git. Pendant votre période de transition, vous devriez effectuer des commits uniquement vers votre dépôt SVN, et non vers votre dépôt Git. Une fois que vous savez que votre équipe est prête à basculer, vous pouvez terminer le processus de migration et commencer à effectuer des commits sur Git au lieu de SVN.

Migration Git : nous recommandons une synchronisation unidirectionnelle de SVN vers Git.

Entre temps, vous devriez continuer à effectuer des commits vers votre référentiel SVN et à synchroniser votre référentiel Git lorsque c'est nécessaire. Le processus est similaire à la phase de conversion, mais du fait que vous n'avez affaire qu'à des modifications incrémentales, cela devrait être bien plus efficace. Le processus est similaire à la phase de conversion, mais du fait que vous n'avez affaire qu'à des modifications incrémentales, cela devrait être bien plus efficace.


Mettre à jour le fichier contenant les auteurs


Le fichier authors.txt que nous avons utilisé pour faire correspondre les noms d'utilisateurs SVN aux noms et adresses email complets est essentiel dans le processus de synchronisation. Le fichier authors.txt que nous avons utilisé pour faire correspondre les noms d'utilisateurs SVN aux noms et adresses email complets est essentiel dans le processus de synchronisation. Le fichier authors.txt que nous avons utilisé pour faire correspondre les noms d'utilisateurs SVN aux noms et adresses email complets est essentiel dans le processus de synchronisation. S'il a été déplacé de l'emplacement ~/GitMigration/authors.txt que nous avons utilisé jusque là, vous devez mettre à jour son emplacement avec : S'il a été déplacé de l'emplacement ~/GitMigration/authors.txt que nous avons utilisé jusque là, vous devez mettre à jour son emplacement avec :

git config svn.authorsfile 

Si de nouveaux développeurs sont attribués au référentiel SVN depuis la dernière sync (ou le clone initial), le fichier auteurs doit être mis à jour en conséquence. Vous pouvez effectuer ceci en ajoutant manuellement de nouveaux utilisateurs dans authors.tx, ou vous pouvez utiliser l'option --authors-prog, comme nous le verrons dans la prochaine section. Vous pouvez effectuer ceci en ajoutant manuellement de nouveaux utilisateurs dans authors.tx, ou vous pouvez utiliser l'option --authors-prog, comme nous le verrons dans la prochaine section. Vous pouvez effectuer ceci en ajoutant manuellement de nouveaux utilisateurs dans authors.tx, ou vous pouvez utiliser l'option --authors-prog, comme nous le verrons dans la prochaine section. Vous pouvez effectuer ceci en ajoutant manuellement de nouveaux utilisateurs dans authors.tx, ou vous pouvez utiliser l'option --authors-prog, comme nous le verrons dans la prochaine section. Vous pouvez effectuer ceci en ajoutant manuellement de nouveaux utilisateurs dans authors.tx, ou vous pouvez utiliser l'option --authors-prog, comme nous le verrons dans la prochaine section.

Pour des synchronisations isolées, il est souvent plus facile d'éditer directement le fichier auteurs. Cependant l'option ---authors-prog est préférable si vous effectuez des synchronisations non supervisées (c'est-à-dire des tâches planifiées). Pour des synchronisations isolées, il est souvent plus facile d'éditer directement le fichier auteurs. Cependant l'option ---authors-prog est préférable si vous effectuez des synchronisations non supervisées (c'est-à-dire des tâches planifiées). Pour des synchronisations isolées, il est souvent plus facile d'éditer directement le fichier auteurs. Cependant l'option ---authors-prog est préférable si vous effectuez des synchronisations non supervisées (c'est-à-dire des tâches planifiées).

Bases de données
Ressource connexe

Comment déplacer un dépôt Git complet

Logo Bitbucket
DÉCOUVRIR LA SOLUTION

Découvrir Git avec Bitbucket Cloud

Générer automatiquement les auteurs Git


Si votre fichier auteurs n'a pas besoin d'être mis à jour, vous pouvez passer directement à la section suivante

La commande git svn inclut une option intitulée --authors-prog, qui pointe sur un script qui transforme automatiquement les noms d'utilisateur SVN en auteurs Git. La commande git svn inclut une option intitulée --authors-prog, qui pointe sur un script qui transforme automatiquement les noms d'utilisateur SVN en auteurs Git. La commande git svn inclut une option intitulée --authors-prog, qui pointe sur un script qui transforme automatiquement les noms d'utilisateur SVN en auteurs Git. La commande git svn inclut une option intitulée --authors-prog, qui pointe sur un script qui transforme automatiquement les noms d'utilisateur SVN en auteurs Git.La commande git svn inclut une option intitulée --authors-prog, qui pointe sur un script qui transforme automatiquement les noms d'utilisateur SVN en auteurs Git. Vous aurez besoin de configurer ce script pour qu'il accepte le nom d'utilisateur SVN comme son argument unique et retourner une ligne unique sous la forme Nom (exactement comme le côté droit du fichier d'auteurs existant). Vous aurez besoin de configurer ce script pour qu'il accepte le nom d'utilisateur SVN comme son argument unique et retourner une ligne unique sous la forme Nom (exactement comme le côté droit du fichier d'auteurs existant). Vous aurez besoin de configurer ce script pour qu'il accepte le nom d'utilisateur SVN comme son argument unique et retourner une ligne unique sous la forme Nom (exactement comme le côté droit du fichier d'auteurs existant). Cette option peut être très utile si vous avez besoin d'ajouter périodiquement de nouveaux développeurs à votre projet.

Si vous voulez utiliser l'option --authors-prog, créez un fichier nommé authors.sh Si vous voulez utiliser l'option --authors-prog, créez un fichier nommé authors.sh Si vous voulez utiliser l'option --authors-prog, créez un fichier nommé authors.sh Si vous voulez utiliser l'option --authors-prog, créez un fichier nommé authors.shSi vous voulez utiliser l'option --authors-prog, créez un fichier nommé authors.shoption dans ~/GitMigration. option dans ~/GitMigration. option dans ~/GitMigration. Ajoutez la ligne suivante à authors.sh pour retourner un nom et un email Git génériques pour tout auteur qui n'a pas été trouvé dans authors.txt. Ajoutez la ligne suivante à authors.sh pour retourner un nom et un email Git génériques pour tout auteur qui n'a pas été trouvé dans authors.txt. Ajoutez la ligne suivante à authors.sh pour retourner un nom et un email Git génériques pour tout auteur qui n'a pas été trouvé dans authors.txt. Ajoutez la ligne suivante à authors.sh pour retourner un nom et un email Git génériques pour tout auteur qui n'a pas été trouvé dans authors.txt.Ajoutez la ligne suivante à authors.sh pour retourner un nom et un email Git génériques pour tout auteur qui n'a pas été trouvé dans authors.txt.

echo "$1 <$1@example.com>"

Une fois de plus, ceci ne va générer qu'un nom et une adresse email génériques basés sur le nom d'utilisateur SVN, aussi n'hésitez pas à le modifier si vous le souhaitez.

Fetcher les nouveaux commits SVN


À la différence de SVN, Git établit une distinction entre le fait de télécharger des commits en amont et de les intégrer dans le projet. À la différence de SVN, Git établit une distinction entre le fait de télécharger des commits en amont et de les intégrer dans le projet. À la différence de SVN, Git établit une distinction entre le fait de télécharger des commits en amont et de les intégrer dans le projet. A la différence de SVN, Git établit une distinction entre le fait de télécharger des commits en amont et de les intégrer dans le projet. À la différence de SVN, Git établit une distinction entre le fait de télécharger des commits en amont et de les intégrer dans le projet. La première manipulation est appelée «aller chercher» ou fetching, tandis que la dernière peut être accomplie à l'aide de la fusion ou d'un changement de base. Dans le répertoire ~/GitMigration, exécutez la commande suivante pour aller chercher tous les nouveaux commits depuis le référentiel SVN original. Dans le répertoire ~/GitMigration, exécutez la commande suivante pour aller chercher tous les nouveaux commits depuis le référentiel SVN original. Dans le répertoire ~/GitMigration, exécutez la commande suivante pour aller chercher tous les nouveaux commits depuis le référentiel SVN original.

git svn fetch

Ceci est similaire à la commande git svn clone de la phase précédente en ce qu'elle ne fait que mettre à jour les branches à distance du référentiel Git. Les branches locales ne reflètent aucune des mises à jour pour l'instant. Ceci est similaire à la commande git svn clone de la phase précédente en ce qu'elle ne fait que mettre à jour les branches à distance du référentiel Git. Les branches locales ne reflètent aucune des mises à jour pour l'instant. Ceci est similaire à la commande git svn clone de la phase précédente en ce qu'elle ne fait que mettre à jour les branches à distance du référentiel Git. Les branches locales ne reflètent aucune des mises à jour pour l'instant. Vos branches à distance, d'autre part, devraient correspondre exactement à l'historique du référentiel de SN.

Si vous utilisez l'option --authors-prog, vous devez l'inclure dans la commande ci-dessus de la manière suivante : Si vous utilisez l'option --authors-prog, vous devez l'inclure dans la commande ci-dessus de la manière suivante : Si vous utilisez l'option --authors-prog, vous devez l'inclure dans la commande ci-dessus de la manière suivante :

git svn fetch --authors-prog=authors.sh

Synchroniser avec les commits récupérés

Pour appliquer les commits téléchargés sur le dépôt, exécutez la commande suivante :

java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar sync-rebase

Ceci effectuera un changement de base des commits récupérés sur vos branches locales afin qu'elles correspondent à leurs contreparties à distance. Vous devriez maintenant être capables de voir les nouveaux commits dans votre journal git. Vous devriez maintenant être capables de voir les nouveaux commits dans votre journal git. Vous devriez maintenant être capables de voir les nouveaux commits dans votre journal git.

Nettoyer le dépôt Git (à nouveau)

C'est également une bonne idée d'exécuter le script git-clean à nouveau pour éliminer toutes les balises ou branches obsolètes qui ont été supprimées du référentiel SVN original depuis la dernière synchronisation. C'est également une bonne idée d'exécuter le script git-clean à nouveau pour éliminer toutes les étiquettes ou branches obsolètes qui ont été supprimées du référentiel SVN original depuis la dernière synchronisation. C'est également une bonne idée d'exécuter le script git-clean à nouveau pour éliminer toutes les étiquettes ou branches obsolètes qui ont été supprimées du référentiel SVN original depuis la dernière synchronisation.

java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git --force

Votre dépôt Git devrait maintenant être synchronisé avec votre dépôt SVN.

Résumé


Pendant cette période de transition, il est très important que vos développeurs n'effectuent des commits que vers le dépôt SVN original. Les seules actualisations du dépôt Git doivent se faire au travers du processus de synchronisation mentionné ci-dessus. Ce système est bien plus facile à gérer qu'un workflow de synchronisation bi-directionnel, mais il vous permet de commencer à intégrer Git dans votre processus de développement.


Partager cet article
Thème suivant

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Des personnes qui collaborent à l'aide d'un mur rempli d'outils

Le blog Bitbucket

Illustration DevOps

Parcours de formation DevOps

Démos Des démos avec des partenaires d'Atlassian

Fonctionnement de Bitbucket Cloud avec Atlassian Open DevOps

Inscrivez-vous à notre newsletter DevOps

Thank you for signing up