• Contenu
  • Bas de page
logo ouidoulogo ouidoulogo ouidoulogo ouidou
  • Qui sommes-nous ?
  • Offres
    • 💻 Applications métier
    • 🤝 Collaboration des équipes
    • 🛡️ Sécurisation et optimisation du système d’information
    • 🔗 Transformation numérique
  • Expertises
    • 🖥️ Développement logiciel
    • ♾️ DevSecOps
    • ⚙️ Intégration de logiciels et négoce de licences
      • Atlassian : Jira, Confluence, Bitbucket…
      • Plateforme monday.com
      • GitLab
      • SonarQube
    • 📚​ Logiciel de CRM et de gestion
    • 🎨 UX/UI design
    • 🌐 Accessibilité Numérique
    • 🗂️​ Démarches simplifiées
    • 📝 Formations Atlassian
  • Références
  • Carrières
    • 🧐 Pourquoi rejoindre Ouidou ?
    • ✍🏻 Nous rejoindre
    • 👨‍💻 Rencontrer nos collaborateurs
    • 🚀 Grandir chez Ouidou
  • RSE
  • Ressources
    • 🗞️ Actualités
    • 🔍 Articles techniques
    • 📖 Livres blancs
    • 🎙️ Interviews Clients
Nous contacter
✕
Focus-within ou l’inception de l’attention
Focus-within ou l’inception de l’attention
16 juillet 2021
Introduction à Phoenix – Épisode 2
Introduction à Phoenix – Épisode 2
24 juillet 2021
Ressources > Articles techniques > Comment migrer de SVN vers GIT à partir d’un dump en conservant l’historique

Comment migrer de SVN vers GIT à partir d’un dump en conservant l’historique

Écrit par Abdourahmane Sow

Dans cette article nous allons voir comment faire une migration de SVN vers GIT.

Problématique

Nous venons de gagner un grand marché pour faire la correction de bugs et intégrer de potentielles évolutions. Les anciens prestataires qui travaillaient sur cette application nous ont fourni un dump SVN et nous souhaitons à partir de ce dump faire une migration vers git.

Essayer de migrer de svn vers git sur une machine lente peut s’avérer être une tâche compliquée. Si le référentiel svn a suffisamment d’enregistrements, il générera constamment des erreurs pour diverses raisons.

La rôle des différents répertoires SVN lors de notre migration vers GIT

  1. Trunk -> Créer notre branche master dans notre dépot (git ,bitbucket …)
  2. Tags -> Créer nos releases dans notre dépot (git ,bitbucket …)
  3. Branches -> Créer les branches dans notre dépot (git ,bitbucket …)

Solution

À travers cette article nous tenterons d’apporter une solution à cette problématique.

Étape 1- Charger le dump svn dans un serveur svn local

$ svnadmin load ouidou_project < ouidou.dump

Étape 2- Générer la fiche d’auteur

$ svn log -q | awk -F ‘|’ ‘/^r/ {sub(“^ “, “”, $2); sub(“ $”, “”, $2); print $2" = “$2” <”$2">”}’ | sort -u > authors.txt

Étape 3- Trouver le numéro de révision auquel le projet a été créé

$ svn log --stop-on-copy

Étape 4- Convertir notre projet SVN en un projet GIT

$ git svn clone -r1:HEAD --no-minimize-url --stdlayout --no-metadata --authors-file authors.txt ouidou_project

Étape 5- Migrer vers le dossier de référentiel

$ cd ouidou_project# ajouter le path du depot de votre choix$ git remote add origin https://github.com/abdou/ouidou.git 

Étape 6 : Conversion des branches SVN en branches Git

La commande git svn clone crée une branche master à partir du trunk qui est prêt à être envoyé vers le référentiel git distant. Mais nous voulons aussi pousser les branches. Utilisez les commandes ci-dessous pour cela :

$ git checkout -b MyDevBranch origin/MyDevBranch

Étape 7 : Migration des tags(versions logicielles)

La commande git svn clone ne crée pas de tags, suivez les commandes ci-dessous pour créer des tags et les préparer à être envoyées à notre dépôt.

$ git tag$ git checkout origin/tags/MyDevBranch-1.0$ git branch -a$ git tag -a MyDevBranch-1.0 -m "creating tag"$ git push origin master MyDevBranch MyDevBranch-1.0

Si de nouveaux commits sont ajoutés à SVN, nous pouvons faire l’une des deux choses suivantes. Si nous avons des modifications dans git que nous voulons conserver, nous pouvons simplement fusionner les modifications de svn :

$ git svn fetch
$ git merge svn/trunk

Si, cependant, nous voulons mettre en miroir svn avec git, nous pouvons simplement réinitialiser le dépôt git :

$ git svn fetch
$ git reset --hard svn/trunk

Conclusion

Les outils de versionning utilisés varient d’un projet à un autre ou d’une entreprise à une autre.

Git est un outil indispensable pour enregistrer l’historique de notre code source. Cet historique prend de la valeur au fur et à mesure que le projet évolue; c’est une archive unique de collaboration qui décrit comment le projet est devenu ce qu’il est aujourd’hui.

Sources

Migrating from SVN to Git

Convert – Migrate to Git from SVN | Atlassian Git Tutorial

Migrating from SVN to GitLab | GitLab

À lire aussi

Fresque numérique miniature image
16 avril 2025

Fresque du Numérique

Lire la suite

intelligence artificielle Ouicommit miniature image
17 mars 2025

Ouicommit – L’intelligence artificielle en entreprise, on y est ! 

Lire la suite

Image miniature Hackathon Women in Tech
13 mars 2025

Hackathon Women in Tech :  un engagement pour une tech plus inclusive 

Lire la suite

image miniature les nouveautés Atlassian
26 février 2025

Les nouveautés Atlassian en 2025

Lire la suite

Articles associés

Fresque numérique miniature image
16 avril 2025

Fresque du Numérique


Lire la suite
intelligence artificielle Ouicommit miniature image
17 mars 2025

Ouicommit – L’intelligence artificielle en entreprise, on y est ! 


Lire la suite
Image miniature Hackathon Women in Tech
13 mars 2025

Hackathon Women in Tech :  un engagement pour une tech plus inclusive 


Lire la suite

À propos

  • Qui sommes-nous ?
  • Références
  • RSE
  • Ressources

Offres

  • Applications métier
  • Collaboration des équipes
  • Sécurisation et optimisation du système d’information
  • Transformation numérique

Expertises

  • Développement logiciel
  • DevSecOps
  • Intégration de logiciels et négoce de licences
  • Logiciel de CRM et de gestion
  • UX/UI design
  • Accessibilité Numérique
  • Démarches simplifiées
  • Formations Atlassian

Carrières

  • Pourquoi rejoindre Ouidou ?
  • Nous rejoindre
  • Rencontrer nos collaborateurs
  • Grandir chez Ouidou

SIEGE SOCIAL
70-74 boulevard Garibaldi, 75015 Paris

Ouidou Nord
165 Avenue de Bretagne, 59000 Lille

Ouidou Rhône-Alpes
4 place Amédée Bonnet, 69002 Lyon

Ouidou Grand-Ouest
2 rue Crucy, 44000 Nantes

Ouidou Grand-Est
7 cour des Cigarières, 67000 Strasbourg

  • Linkedin Ouidou
  • GitHub Ouidou
  • Youtube Ouidou
© 2024 Ouidou | Tous droits réservés | Plan du site | Mentions légales | Déclaration d'accessibilité
    Nous contacter