Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Migration d'une base de code subversion vers git

ubermuda
November 09, 2011

Migration d'une base de code subversion vers git

ubermuda

November 09, 2011
Tweet

More Decks by ubermuda

Other Decks in Technology

Transcript

  1. { Migration d'une base de code subversion vers git Geoffrey

    Bachelet – PMSIpilot Forum PHP 2010
  2. { 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é
  9. { 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 • …
  10. { 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
  11. { Gitosis • Authentification des développeurs par clés RSA •

    Gestion des droits par utilisateur et par dépôt • Lecture seulement • Lecture / écriture
  12. {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
  13. { Solution ? • Avoir une version de git à

    jour • « git repack -adf » • Echoue sur notre serveur (4Go de RAM, 32bits)
  14. { 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
  15. { 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.
  16. { Les développeurs • Nouveau workflow • Similaire à l'ancien

    pour commencer • Nouveaux logiciels • git, gitk, gitx • Redmine • PHPStorm
  17. { 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 »
  18. { C'est fini ! • Merci à l'AFUP • Merci

    à PMSIpilot (on recrute !) • Merci à vous !