More Related Content Similar to Migration d'une base de code subversion vers git Similar to Migration d'une base de code subversion vers git (20) Migration d'une base de code subversion vers git2. { PMSIpilot
"Le groupe PMSIpilot conçoit, édite et distribue des
logiciels étudiés spécialement pour les
établissements de santé."
3. { PMSIpilot
● 8 logiciels interdépendants
● 15 développeurs
● 250 000+ lignes de code
● 6.5G de dépôt subversion
● 24 000+ révisions
● Fichiers binaires
4. { Pourquoi ?
● Flexibilité des branches
● Gestion d'un gros projet
● Facilités de backport
● Fonctionnalités « bonus »
5. { Flexibilité des branches
● Coût de création d'une branche très faible
● Branches locales
● « feature branches »
6. { Gestion d'un gros projet
● Gère les sources du noyau Linux
● 17 000+ révisions
● Quelques surprises quand même
● Fichiers binaires volumineux
7. { Facilité des backports
● Une branche par version
● « git cherry-pick »
● « git rebase [--interactive] »
8. { Bonus
● « git stash »
● « git add --interactive »
● « git rebase --interactive »
● « git commit --amend »
● Commit en mode déconnecté
11. { Solutions !
● Importer un dépôt local (file:///path/to/svn)
● Convertir les « branches tags » en vrais tags
● http://gitready.com/advanced/2009/02/16/convert-git-svn
● http://blue-dwarf.de/wp/2008/08/30/converting-git-svn-ta
● http://progit.org/book/ch8-2.html
● …
12. { Ne pas oublier !
git svn init --stdlayout
14. { Tiers
● Pas de serveur à gérer
● Services autour du dépôt
● Large choix
● https://git.wiki.kernel.org/index.php/GitHosting
● http://stackoverflow.com/questions/109440/best-git-repo
16. { Gitosis
● Authentification des développeurs par clés RSA
● Gestion des droits par utilisateur et par dépôt
● Lecture seulement
● Lecture / écriture
18. {Fichiers binaires volumineux
● Consommation mémoire lors du « repack »
● Problème connu
● http://www.google.com/search?q=git+fatal+out+memory
● 223 000 résultats
19. { Solution ?
● Avoir une version de git à jour
● « git repack -adf »
● Echoue sur notre serveur (4Go de RAM, 32bits)
24. { Réécrire l'histoire
● http://progit.org/book/ch9-7.html
● git help filter-branch
● Beaucoup d'outils dans git
● git count-objects
● git rev-list
● git verify-pack
● etc
38. { Les grafts
git help filter-branch
NOTE: This command honors .git/info/grafts. If
you have any grafts defined, running this
command will make them permanent.
45. { Les développeurs
● Nouveau workflow
● Similaire à l'ancien pour commencer
● Nouveaux logiciels
● git, gitk, gitx
● Redmine
● PHPStorm
46. { Les développeurs
● Formation interne
● Réunions techniques
● Référents internes
● Auto-formation
49. { Nouveaux concepts
● Fonctionnement en mode distribué
● Confusion entre « remote » et « branche »
● Confusion entre « commit » et « push »
● Confusion sur le « pull » et le « merge »
● Vocabulaire différent
● « revert » vs « checkout » / « reset »
53. { C'est fini !
● Merci à l'AFUP
● Merci à PMSIpilot (on recrute !)
● Merci à vous !