Intégrer un projet SVN dans un Projet GIT

Classé dans : Programmation | 0

Pour les besoins d’un projet particulier il a fallut gérer dans un dossier GIT des fichiers venant d’un projet SVN.

Vous allez voir dans ce mini-tuto comment faire cohabiter GIT & SVN dans le même projet sans créer de perturbation.

SVN intègre une option qui s’appelle ‘Externals‘. Cette dernière permet d’intégrer un projet SVN dans un autre SVN, sans que cela ne perturbe le fonctionnement.

Avec GIT l’astuce est toute simple il suffit de spécifier le dossier contenant le projet SVN dans .gitignore.

Ce fichier indique à GIT de ne pas intégrer certains dossiers/fichiers dans le dépôt GIT. C’est exactement ce que l’on souhaite car le SVN à son propre mode de fonctionnement et on ne souhaite pas intégrer dans GIT tous les fichiers SVN.

Voici la procédure :

Créez d’un dossier pour notre SVN dans le projet GIT existant : mkdir projet2
Créez le fichier .gitignore et ajouter une ligne contenant projet2/*
Réalisez le checkout du svn : cd projet2 & svn co URL_SVN

Voila c’est pas plus compliqué. Maintenant si vous modifiez des fichiers dans /projet2, vous utilisez SVN pour commiter les modifications. Si vous modifiez des fichiers en dehors de /projet2, vous utilisez git.

Il y a (au moins) un inconvénient à cette solution. Si vous utilisez git push pour mettre à jour un serveur (via les hooks) le dossier svn /projet2 ne sera pas mis à jour. Il faut alors que votre script post-receive intégre la mise à jour du dossier /project2.

hooks* : Ce sont des petits scripts que git peut déclencher après un commit, un push ou plusieurs autres événements.