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

Git, la gestion de configuration qui vous veut du bien

F0887bf6175ba40dca795eb37883a8cf?s=47 dgageot
September 26, 2011

Git, la gestion de configuration qui vous veut du bien

Code freeze, merges douloureux, installation et administration d'un serveur, sauvegardes fastidieuses, perte de données, branches coûteuses, obstacle au refactoring, cycles de build trop longs...

Ces mots sont-ils pour vous synonymes de Gestion de Configuration? Vous avez appris à vivre en couple avec un outil en ignorant volontairement ses défauts, mais ils se rappellent régulièrement à vous? Découvrez à travers des cas d'utilisation quotidiens comment Git sait se faire oublier et vous faire gagner beaucoup de temps.

Vous allez aimer cet outil avec une administration proche de zéro, ne nécessitant pas de backup, utilisable en moins de cinq minutes sur une clef usb, un simple disque partagé, en serveur ou en mode SAAS. Les équipes agiles, seront "accros" de l'outil sachant se faire oublier lors de refactoring de code massifs et permettant l'intégration continue sans serveur. Les équipes distribuées apprécieront les branches locales, le cherry-picking et les performances de git.

Vous êtes build manager en charge des branches et des code freezes? Désolé, vous venez de perdre votre job.

F0887bf6175ba40dca795eb37883a8cf?s=128

dgageot

September 26, 2011
Tweet

Transcript

  1. La gestion de configuration qui vous veut du bien

  2. David Gageot CTO algodeal.com The Crowd Sourced Quant Hedge Fund

    @dgageot javabien.net Faisons connaissance
  3. Gain de temps Gestion de sources Nous allons parler de...

    Travail en équipe Intégration continue Refactoring
  4. Men in Black Bottes de Foin Yoda ...mais aussi de...

    Sandwich au fromage
  5. Photo: http://www.flickr.com/photos/91082225@N00/3271601712 Ca vous va ?

  6. Genre : Gestion de version Date de naissance : 2005

    Créateur : Linus Torvalds Licence : GPL Signes distinctifs : Pas besoin de serveur Chaque utilisateur a une copie de l’historique Fonctionne en déconnecté Git Photo:http://getch.files.wordpress.com/2009/02/mask-linus_torvalds.jpg
  7. La concurrence

  8. http://www.filmbuffonline.com/FBOLNewsreel/wordpress/wp-content/uploads/2009/10/MenInBlack1.jpg Avant d’aller plus loin... Oubliez tout ce que vous

    savez
  9. Photo: http://www.flickr.com/photos/zoutedrop/2317065892/ Pas de temps à perdre ? Git en

    action
  10. Photo: http://malcontenta.blog.lemonde.fr/files/2008/06/chaplin-les-temps-modernes.1212659628.jpg mvn eclipse:eclipse ne fonctionne plus ! Depuis quand

    ? Quelle version ?
  11. Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/ Tester toutes les versions précédentes ?

  12. Dichotomie : La dichotomie (« couper en deux » en

    grec) est, en algorithmique, un processus itératif ou récursif de recherche où, à chaque étape, on coupe en deux parties (pas forcément égales) un espace de recherche qui devient restreint à l'une de ces deux parties. Wikipedia
  13. Un petit dessin...

  14. Tester toutes les versions depuis la fin 1 3 2

    4 5 6 KO OK t
  15. Tester toutes les versions depuis la fin 1 3 2

    4 5 6 1 Dichotomie 2 3 OK KO KO OK O(n) O(log n)
  16. Photo: http://www.wallfizz.com/nature/plaine-et-prairie/2714-botte-de-foin-dans-un-champ-WallFizz.jpg A la main, ça reste long

  17. Photo: http://farm1.static.flickr.com/154/356715278_0e0cfe107c.jpg Surtout avec des branches

  18. Git bisect (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/

  19. git bisect

  20. Partageons quelques tours de magie « La gestion de configuration

    sans serveur » « Le merge omniscient » « Le build incassable » Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  21. « La gestion de configuration sans serveur » Photo: http://www.allocine.fr/film/fichefilm-20588/affiches/detail/?cmediafile=18930405

  22. Mettre un répertoire en gestion de configuration Sans serveur, sans

    administrateur
  23. Quand ? Avant d’éditer des fichiers de configuration Pour préparer

    une démo Avant de mettre à jour Eclipse ... Où ? Clef USB, Disque externe Permet de se faire la main sur Git Mettre un répertoire en gestion de configuration
  24. Git & Gitx (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/

  25. Commits locaux Première version Correctif Amélioration

  26. Branches locales Première version Correctif Amélioration Ajout 1 Ajout 2

    master branche
  27. Fusion de branches Première version Correctif Amélioration Ajout 1 Ajout

    2 master branche merge branche
  28. One more thing... Début fonctionnalité B Suite fonctionnalité A master

    Début fonctionnalité A Suite fonctionnalité B
  29. Git rebase -i Suite fonctionnalité A Début fonctionnalité B master

    Début fonctionnalité A Suite fonctionnalité B
  30. Git rebase -i (suite) Fonctionnalité B master Fonctionnalité A

  31. Faire une copie locale de tout l’historique Partagé Pousser/récupérer les

    modifications Vous savez presque tout !
  32. Partage de sources dans une équipe Pas de notion de

    maître / esclave Chacun peut faire des modifications et récupérer celles des autres Pas d’administrateur Partagé
  33. Cercles de confiance pull Référence Committer

  34. Mode Open Source : noyaux linux Pas de droits d’accès

    Pas d’administrateur Modèle pour une grosse équipe Cercles de confiance
  35. Créer un repository central Faire une copie locale Centralisé

  36. A la Subversion Chaque clone connait tout l’historique Travail en

    mode déconnecté Backup gratuite (Encore un administrateur de moins...) Centralisé
  37. Git Hub

  38. Photo: http://www.e-cart.biz/stores/vintage-metal-art/images/custom_tailor.gif Comme à la maison Git permet de suivre

    son propre workflow
  39. Un vrai projet (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/

  40. Collaborer, ça veut dire quoi ? Développeurs Fichiers

  41. Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/

  42. «Le merge omniscient» Photo: http://www.computerweekly.com/PhotoGalleries/235697/944_20_Cerebro-X-Men-Origins-Wolverine-Gadgets-and-Weapons.JPG

  43. Photo: http://img4.southernliving.com/i/2007/01/grilled-cheese/melted-cheese-l.jpg Faire un merge c’est difficile Frein au refactoring

  44. Modifier un fichier pendant qu’un autre développeur le renomme Casse

    tête assuré Cas d’école
  45. Renommer tous les packages com.tech4quant en com.algodeal Découper un projet

    maven en sous projets Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/ Exemples
  46. Keep it Simple Stupid Pas besoin de plugin. Juste find,

    mv, sed
  47. Keep it Simple Stupid

  48. Photo: http://flickr.com/photos/8459432@N03/3446187475 Sans code freeze Un Build Manager dans la

    salle ?
  49. Un vrai projet Java vu avec l’outil Gource (démo) Photo:

    http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  50. «Le build incassable» Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg

  51. Intégration continue Hudson, Cruise Control, Team City ?

  52. Et si le build n’était jamais cassé ?

  53. Un petit script suffit

  54. Un petit dessin...

  55. Perso Build privé Partagé Sync puis publie Teste Mon Poste

    de travail
  56. Plus de pause café pendant le build Photo: http://farm3.static.flickr.com/2698/4041033176_80072af942.jpg

  57. Cette présentation est loin d’être exhaustive tig cherry-pick filter-branch stash

    git blame revert instaweb diff log tag whatchanged clean add -p checkout reset hooks
  58. Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg «Git demain adopter tu dois, jeune Padawan»

  59. Je commence demain

  60. GitX

  61. Passerelle bi-directionnelle vers Subversion Permet de travailler sous git tout

    en publiant dans SVN Git-svn
  62. Pas accès à toute la puissance de git. Pas compatible

    avec toutes les mises en oeuvre de SVN Limites de Git-svn
  63. Merci Questions / Réponses

  64. David Gageot CTO algodeal.com The Crowd Sourced Quant Hedge Fund

    @dgageot javabien.net Faisons connaissance