Upload
david-gageot
View
23
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
La gestion de configuration qui vous veut du bien.
David Gageot
CTO Algodeal.com «The Crowd Sourced Quant
Hedge Fund»
@dgageotjavabien.net
Gain de temps
Gestion de configuration
Robustesse
Souplesse
Nous allons parler de...
Réactivité
Travail en équipe
Cinéma
Bottes de Foin
Magie
Yoda
...Mais aussi de
Sandwichau fromage
Addiction
Ca vous va ?
Photo: http://www.flickr.com/photos/91082225@N00/3271601712
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.
Manifesto for Agile Software Development
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/
Photo: http://www.cartoonstock.com/lowres/iba0399l.jpg
Attention à la Magie !
SimpleComplexeDéroutantEn vogueAddictif
Git en un slide.
RapideDistribué
DéconnectéCompletRobuste
La concurrence en un slide.
Photo: http://www.flickr.com/photos/zoutedrop/2317065892/
Pas de temps à perdre ?
Commençons par une démo de git en action.
Photo: http://malcontenta.blog.lemonde.fr/files/2008/06/chaplin-les-temps-modernes.1212659628.jpg
mvn eclipse:eclipse ne fonctionne plus !
Depuis quand ?
Quel commit a cassé le build ?
Première approche :
On pourrait tester tous les commits depuis le dernier.
Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/
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
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
Git bisect en action.
(démo)
Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
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/
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
Pas de retour arrière.
Photo: http://www.reconnections.net/redblue_pill.jpg
« La gestion de configuration sans serveur »
Photo: http://www.allocine.fr/film/fichefilm-20588/affiches/detail/?cmediafile=18930405
Mettre un répertoire local en gestion de configuration.
Pas de serveur,Pas de service,
Pas d’administration.
Utilisation personnelle. Vous savez presque
tout !
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.
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 !
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é.
Cercles de confiance.
pullRéférence
Committer
Mode Open Source : noyaux linux.
Pas de droits d’accès.
Pas d’administrateur.
Modèle pour une grosse équipe.
Cercles de confiance.
Créer un repository central.
Faire une copie locale.
Publier des modifications.
Centralisé.
A la Subversion.
Chaque clone connait tout l’historique.
Travail en mode déconnecté.
Backup gratuite.(Encore un administrateur de moins...)
Centralisé.
Git Hub.
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
Dans la vraie vievu avec l’outil Gource.
(démo)
Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
«Le merge omniscient»
Photo: http://www.computerweekly.com/PhotoGalleries/235697/944_20_Cerebro-X-Men-Origins-Wolverine-Gadgets-and-Weapons.JPG
Faire un merge c’est difficile
Frein au refactoring
Photo: http://img4.southernliving.com/i/2007/01/grilled-cheese/melted-cheese-l.jpg
Renommer les packagescom.tech4quanten com.algodeal.
Découper un projet maven
en sous projets.
Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
Modifier un fichier pendant qu’un autre développeur le renomme.
Casse tête assuré.
Sans code freeze.
Un Build Manager dans la salle ?
Photo: http://flickr.com/photos/8459432@N03/3446187475
Keep it Stupid Simple.
Pas besoin de plugin.Juste mv, vi, rm
«Le build incassable»
Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg
Intégration continue ?
Hudson, Cruise Control, Team City ?
Et si le build n’était jamais cassé ?
Un petit dessin...
Perso Private Build
Partagé
Sync
puis PushBuild
On peut travailler pendant le build.
Pas de panne.
Build toujours vert -> moins de complexité.
Robustesse et gain de temps.
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
Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg
J’avais promis de parler de Yoda !
«Git demain adopter tu dois, tiot Padawan»
GitX.
Passerelle bi-directionnelle vers Subversion.
Permet de travailler sous git tout en publiant dans SVN.
Git-svn.
Merci.Questions / Réponses
David Gageot
CTO Algodeal.com «The Crowd Sourced Quant
Hedge Fund»
@dgageotjavabien.net