53
La gestion de configuration qui vous veut du bien.

Git Chti JUG

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Git Chti JUG

La gestion de configuration qui vous veut du bien.

Page 2: Git Chti JUG

David Gageot

CTO Algodeal.com «The Crowd Sourced Quant

Hedge Fund»

@dgageotjavabien.net

Page 3: Git Chti JUG

Gain de temps

Gestion de configuration

Robustesse

Souplesse

Nous allons parler de...

Réactivité

Travail en équipe

Page 4: Git Chti JUG

Cinéma

Bottes de Foin

Magie

Yoda

...Mais aussi de

Sandwichau fromage

Addiction

Page 6: Git Chti JUG

Photo: http://www.flickr.com/photos/gregrk/1426969126/sizes/o/

Avant d’aller plus loin...

J’ai un aveux à faire.Je suis accro aux outils.

Page 7: Git Chti JUG

Manifesto for Agile Software Development

Page 8: Git Chti JUG

Git me fait gagner du temps.

Moins de portes fermées.Moins de frictions.

Un peu de Magie parfois.

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

Page 9: Git Chti JUG

Photo: http://www.cartoonstock.com/lowres/iba0399l.jpg

Attention à la Magie !

Page 10: Git Chti JUG

SimpleComplexeDéroutantEn vogueAddictif

Git en un slide.

RapideDistribué

DéconnectéCompletRobuste

Page 11: Git Chti JUG

La concurrence en un slide.

Page 12: Git Chti JUG

Photo: http://www.flickr.com/photos/zoutedrop/2317065892/

Pas de temps à perdre ?

Commençons par une démo de git en action.

Page 14: Git Chti JUG

Première approche :

On pourrait tester tous les commits depuis le dernier.

Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/

Page 15: Git Chti JUG

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

Page 16: Git Chti JUG

A la main, c’est quand même long.

Photo: http://www.wallfizz.com/nature/plaine-et-prairie/2714-botte-de-foin-dans-un-champ-WallFizz.jpg

Page 17: Git Chti JUG

Git bisect en action.

(démo)

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

Page 18: Git Chti JUG
Page 19: Git Chti JUG

Partageons quelquestours de magie :

« La gestion de configuration sans serveur »

« Le merge omniscient »« Le build incassable »

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

Page 20: Git Chti JUG

Mais avant...

Oubliez ce que vous savez sur les outils de

gestion de configuration.

Photo: http://www.collider.com/uploads/imageGallery/Men_in_Black/men_in_black_movie_image_tommy_lee_jones_and_will_smith.jpg

Page 21: Git Chti JUG

Pas de retour arrière.

Photo: http://www.reconnections.net/redblue_pill.jpg

Page 22: Git Chti JUG

« La gestion de configuration sans serveur »

Photo: http://www.allocine.fr/film/fichefilm-20588/affiches/detail/?cmediafile=18930405

Page 23: Git Chti JUG

Mettre un répertoire local en gestion de configuration.

Pas de serveur,Pas de service,

Pas d’administration.

Utilisation personnelle. Vous savez presque

tout !

Page 24: Git Chti JUG

Quand ?Avant d’éditer des fichiers de configuration.

Pour préparer une démo.Avant de mettre à jour Eclipse.

...

Où ?Clef USB, Disque externe, DropBox.

Permet de se faire la main sur Git.

Utilisation personnelle.

Page 25: Git Chti JUG

Partager un répertoire sur une machine ou un réseau local.

Faire une copie locale de tout l’historique.

Partagé.

Pousser/récupérer les modifications.

Ca y est,vous savez

tout !

Page 26: Git Chti JUG

Partage de sources dans une équipe.Pas de notion de maître / esclave.

Chacun peut faire des modificationset récupérer celles des autres.

Pas d’administrateur.

Partagé.

Page 27: Git Chti JUG

Cercles de confiance.

pullRéférence

Committer

Page 28: Git Chti JUG

Mode Open Source : noyaux linux.

Pas de droits d’accès.

Pas d’administrateur.

Modèle pour une grosse équipe.

Cercles de confiance.

Page 29: Git Chti JUG

Créer un repository central.

Faire une copie locale.

Publier des modifications.

Centralisé.

Page 30: Git Chti JUG

A la Subversion.

Chaque clone connait tout l’historique.

Travail en mode déconnecté.

Backup gratuite.(Encore un administrateur de moins...)

Centralisé.

Page 31: Git Chti JUG

Git Hub.

Page 32: Git Chti JUG

Comme à la maison.

Git permet de suivre son propre workflow.

(au sens noble du terme)

Photo: http://www.e-cart.biz/stores/vintage-metal-art/images/custom_tailor.gif

Page 33: Git Chti JUG

Dans la vraie vievu avec l’outil Gource.

(démo)

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

Page 34: Git Chti JUG

«Le merge omniscient»

Photo: http://www.computerweekly.com/PhotoGalleries/235697/944_20_Cerebro-X-Men-Origins-Wolverine-Gadgets-and-Weapons.JPG

Page 35: Git Chti JUG

Faire un merge c’est difficile

Frein au refactoring

Photo: http://img4.southernliving.com/i/2007/01/grilled-cheese/melted-cheese-l.jpg

Page 36: Git Chti JUG

Renommer les packagescom.tech4quanten com.algodeal.

Découper un projet maven

en sous projets.

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

Page 37: Git Chti JUG

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

Casse tête assuré.

Page 38: Git Chti JUG

Sans code freeze.

Un Build Manager dans la salle ?

Photo: http://flickr.com/photos/8459432@N03/3446187475

Page 39: Git Chti JUG

Keep it Stupid Simple.

Pas besoin de plugin.Juste mv, vi, rm

Page 40: Git Chti JUG

«Le build incassable»

Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg

Page 41: Git Chti JUG

Intégration continue ?

Page 42: Git Chti JUG

Hudson, Cruise Control, Team City ?

Page 43: Git Chti JUG

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

Page 44: Git Chti JUG
Page 45: Git Chti JUG

Un petit dessin...

Perso Private Build

Partagé

Sync

puis PushBuild

Page 46: Git Chti JUG

On peut travailler pendant le build.

Pas de panne.

Build toujours vert -> moins de complexité.

Robustesse et gain de temps.

Page 47: Git Chti JUG

Branches localestig

cherry-pick

filter-branch stash

git blame

rebase -irevert

commit hooks

instaweb

diff

log

tag

whatchanged clean

add -p checkout

reset

Cette présentation est loin d’être exhaustive

hooks

Page 48: Git Chti JUG

Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg

J’avais promis de parler de Yoda !

«Git demain adopter tu dois, tiot Padawan»

Page 49: Git Chti JUG

Pro Git.

http://progit.org/

Page 50: Git Chti JUG

GitX.

Page 51: Git Chti JUG

Passerelle bi-directionnelle vers Subversion.

Permet de travailler sous git tout en publiant dans SVN.

Git-svn.

Page 52: Git Chti JUG

Merci.Questions / Réponses

Page 53: Git Chti JUG

David Gageot

CTO Algodeal.com «The Crowd Sourced Quant

Hedge Fund»

@dgageotjavabien.net