Git USI 2010

Preview:

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 !