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.
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).
Ressource connexe
Comment déplacer un dépôt Git complet
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 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
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
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.sh
Si 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.