36
Git : La gestion de configuration qui vous veut du bien David Gageot

Git USI 2010

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

Page 1: Git USI 2010

Git : La gestion de configurationqui vous veut du bien

David Gageot

Page 2: Git USI 2010

©  Université  du  Système  d’Informa7on

Faisons connaissance

David Gageot et

CTO algodeal.comCrowd Sourced Quant Hedge Fund

@dgageotjavabien.net

Page 3: Git USI 2010

©  Université  du  Système  d’Informa7on

Cas concretsGestion

de sources

Nous allons parler de...

Travailen équipe

Intégrationcontinue

Build

Gain detemps

Page 4: Git USI 2010

©  Université  du  Système  d’Informa7on

Menin Black

Bottesde foin

Yoda

...mais aussi de...

Pausecafé

Page 5: Git USI 2010

©  Université  du  Système  d’Informa7on Photo: http://www.flickr.com/photos/91082225@N00/3271601712

Ca vous va ?

Page 6: Git USI 2010

©  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

Page 7: Git USI 2010

©  Université  du  Système  d’Informa7on

La concurrence

Page 8: Git USI 2010

©  Université  du  Système  d’Informa7on Photo: http://www.flickr.com/photos/zoutedrop/2317065892/

Pas de temps à perdre ?Git en action

Page 9: Git USI 2010

©  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

Page 10: Git USI 2010

©  Université  du  Système  d’Informa7on

Pas de retour arrière

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

Page 11: Git USI 2010

©  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 ?

Page 12: Git USI 2010

©  Université  du  Système  d’Informa7on Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/

Tester toutes les versions précédentes ?

Page 13: Git USI 2010

©  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

Page 14: Git USI 2010

©  Université  du  Système  d’Informa7on

Un petit dessin...

Page 15: Git USI 2010

©  Université  du  Système  d’Informa7on

Tester toutes les versions depuis la fin

13 2456 KOOK

t

Page 16: Git USI 2010

©  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)

Page 17: Git USI 2010

©  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

Page 18: Git USI 2010

©  Université  du  Système  d’Informa7on Photo: http://farm1.static.flickr.com/154/356715278_0e0cfe107c.jpg

Surtout avec des branches

Page 19: Git USI 2010

©  Université  du  Système  d’Informa7on

Git bisect

(démo)

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

Page 20: Git USI 2010

©  Université  du  Système  d’Informa7on

Git bisect

Page 21: Git USI 2010

©  Université  du  Système  d’Informa7on

«Le build incassable»

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

Page 22: Git USI 2010

©  Université  du  Système  d’Informa7on

Intégration continueHudson, Cruise Control, Team City ?

Page 23: Git USI 2010

©  Université  du  Système  d’Informa7on

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

Page 24: Git USI 2010

©  Université  du  Système  d’Informa7on

Un petit script suffit

Page 25: Git USI 2010

©  Université  du  Système  d’Informa7on

Un petit dessin...

Page 26: Git USI 2010

©  Université  du  Système  d’Informa7on

Perso Build privé

Partagé

Sync

puis publie

Teste

Mon Poste de travail

Page 27: Git USI 2010

©  Université  du  Système  d’Informa7on

Plus de pause café pendant le build

Photo: http://farm3.static.flickr.com/2698/4041033176_80072af942.jpg

Page 28: Git USI 2010

©  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

Page 29: Git USI 2010

©  Université  du  Système  d’Informa7on Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg

«Git demain adopter tu dois»

Page 30: Git USI 2010

©  Université  du  Système  d’Informa7on

Je commence demain

Page 31: Git USI 2010

©  Université  du  Système  d’Informa7on

Git Hub

Page 32: Git USI 2010

©  Université  du  Système  d’Informa7on

GitX

Page 33: Git USI 2010

©  Université  du  Système  d’Informa7on

Un vrai projet

(démo)

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

Page 34: Git USI 2010

©  Université  du  Système  d’Informa7on

Collaborer, ça veut dire quoi ?

Développeurs

Fichiers

Page 35: Git USI 2010

©  Université  du  Système  d’Informa7on Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/

Page 36: Git USI 2010

©  Université  du  Système  d’Informa7on

David Gageotet

CTO algodeal.com Crowd Sourced Quant Hedge Fund

@dgageotjavabien.net

Merci !