Upload
david-gageot
View
1.033
Download
3
Embed Size (px)
DESCRIPTION
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.
Citation preview
Git : La gestion de configurationqui vous veut du bien
David Gageot
© Université du Système d’Informa7on
Faisons connaissance
David Gageot et
CTO algodeal.comCrowd Sourced Quant Hedge Fund
@dgageotjavabien.net
© Université du Système d’Informa7on
Cas concretsGestion
de sources
Nous allons parler de...
Travailen équipe
Intégrationcontinue
Build
Gain detemps
© Université du Système d’Informa7on
Menin Black
Bottesde foin
Yoda
...mais aussi de...
Pausecafé
© Université du Système d’Informa7on Photo: http://www.flickr.com/photos/91082225@N00/3271601712
Ca vous va ?
© Université du Système d’Informa7on
Genre : Gestion de versionDate de naissance : 2005Créateur : Linus TorvaldLicence : GPL
Signes distinctifs :Pas besoin de serveurChaque utilisateur a une copie de l’historiqueFonctionne en déconnecté
Git
Photo:http://getch.files.wordpress.com/2009/02/mask-linus_torvalds.jpg
© Université du Système d’Informa7on
La concurrence
© Université du Système d’Informa7on Photo: http://www.flickr.com/photos/zoutedrop/2317065892/
Pas de temps à perdre ?Git en action
© Université du Système d’Informa7on Photo: http://www.collider.com/uploads/imageGallery/Men_in_Black/men_in_black_movie_image_tommy_lee_jones_and_will_smith.jpg
Mais avant...Oubliez tout ce que vous savez
Passer la seconde
Je vous fais gagner 1 an
© Université du Système d’Informa7on
Pas de retour arrière
Photo: http://www.reconnections.net/redblue_pill.jpg
© Université du Système d’Informa7on 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 ?
© Université du Système d’Informa7on Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/
Tester toutes les versions précédentes ?
© Université du Système d’Informa7on
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
© Université du Système d’Informa7on
Un petit dessin...
© Université du Système d’Informa7on
Tester toutes les versions depuis la fin
13 2456 KOOK
t
© Université du Système d’Informa7on
Tester toutes les versions depuis la fin
13 2456
1
Dichotomie
2 3OK KO
KOOK
O(n)
O(log n)
© Université du Système d’Informa7on Photo: http://www.wallfizz.com/nature/plaine-et-prairie/2714-botte-de-foin-dans-un-champ-WallFizz.jpg
A la main, ça reste long
© Université du Système d’Informa7on Photo: http://farm1.static.flickr.com/154/356715278_0e0cfe107c.jpg
Surtout avec des branches
© Université du Système d’Informa7on
Git bisect
(démo)
Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
© Université du Système d’Informa7on
Git bisect
© Université du Système d’Informa7on
«Le build incassable»
Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg
© Université du Système d’Informa7on
Intégration continueHudson, Cruise Control, Team City ?
© Université du Système d’Informa7on
Et si le build n’était jamais cassé ?
© Université du Système d’Informa7on
Un petit script suffit
© Université du Système d’Informa7on
Un petit dessin...
© Université du Système d’Informa7on
Perso Build privé
Partagé
Sync
puis publie
Teste
Mon Poste de travail
© Université du Système d’Informa7on
Plus de pause café pendant le build
Photo: http://farm3.static.flickr.com/2698/4041033176_80072af942.jpg
© Université du Système d’Informa7on
branchtig
cherry-pick
filter-branch stash
git blame
rebase -irevert
instaweb
diff
log
tag
whatchanged clean
add -p checkout
reset
Cette présentation est loin d’être exhaustive
hooks
© Université du Système d’Informa7on Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg
«Git demain adopter tu dois»
© Université du Système d’Informa7on
Je commence demain
© Université du Système d’Informa7on
Git Hub
© Université du Système d’Informa7on
GitX
© Université du Système d’Informa7on
Un vrai projet
(démo)
Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
© Université du Système d’Informa7on
Collaborer, ça veut dire quoi ?
Développeurs
Fichiers
© Université du Système d’Informa7on Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
© Université du Système d’Informa7on
David Gageotet
CTO algodeal.com Crowd Sourced Quant Hedge Fund
@dgageotjavabien.net
Merci !