en quoi git serait plus agile que svn ?
DESCRIPTION
Support de la session "En quoi git serait plus agile que svn ?" à Agile Tour 2012TRANSCRIPT
![Page 2: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/2.jpg)
Guillaume CollicActeur de l’agilité
@gcollic
Etc.
![Page 3: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/3.jpg)
Sondage
• Gestion de version ?• SVN / TFS* ?• DVCS / Git / Mercurial / Bazaar ?
* lorsque je parle ici de TFS, je ne parle que de la brique gestion de version de TFS, parmi toutes les autres briques de cette plateforme ALM complète
![Page 4: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/4.jpg)
Plan
• Rôles d’un VCS– Les bases, mais important pour la suite
• Client-Serveur : SVN• Distribué : Git• En contexte agile ?• Retour d’expérience• Questions
![Page 5: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/5.jpg)
RÔLES D’UN VCSGestion de source
![Page 6: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/6.jpg)
Vocabulaire
• VCS
–Version Control System–Gestionnaire de source–Gestionnaire de version•Ambigüe, source ou binaire ?
–Gestionnaire de révision
![Page 7: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/7.jpg)
http://www.flickr.com/photos/26628378@N03/2988737872
![Page 8: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/8.jpg)
![Page 9: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/9.jpg)
![Page 10: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/10.jpg)
![Page 11: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/11.jpg)
© 2011 - 2012, All The Memes LLC. All Rights Reserved.
![Page 12: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/12.jpg)
© 2011 - 2012, All The Memes LLC. All Rights Reserved.
![Page 13: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/13.jpg)
CPOLDLe gestionnaire de version le plus utilisé au monde
![Page 14: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/14.jpg)
CP OLD
src
![Page 15: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/15.jpg)
CP OLD
src old
![Page 16: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/16.jpg)
CP OLD
src old
![Page 17: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/17.jpg)
CP OLD
src old
![Page 18: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/18.jpg)
CP OLD
old
![Page 19: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/19.jpg)
CP OLD
src
![Page 20: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/20.jpg)
© 2011 - 2012, All The Memes LLC. All Rights Reserved.
![Page 21: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/21.jpg)
Un VCS est
• Un filet de sécurité pour revenir en arrière
![Page 22: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/22.jpg)
http://www.flickr.com/photos/26628378@N03/2988737872
![Page 23: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/23.jpg)
http://www.flickr.com/photos/26628378@N03/2988737872
![Page 24: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/24.jpg)
src
![Page 25: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/25.jpg)
src
![Page 26: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/26.jpg)
src livraison1 livraison2
![Page 27: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/27.jpg)
© 2011 - 2012, All The Memes LLC. All Rights Reserved.
![Page 28: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/28.jpg)
Un VCS est
• Un filet de sécurité pour revenir en arrière• Un référentiel commun
![Page 29: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/29.jpg)
Et là…
![Page 30: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/30.jpg)
Mon travail, écrasé!
![Page 31: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/31.jpg)
Outils dédiés
• …• CVS (1990)– /!\ ne pas confondre avec le sigle VCS
• ClearCase (1992)• Visual SourceSafe (1994)• BitKeeper (1998)• SVN (2000)
– slogan « CVS Done Right »• TFS (2005)• Git (2005)• …
![Page 32: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/32.jpg)
VCS client - serveur
Serveur
Bob Tom Léa
![Page 33: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/33.jpg)
Serveur
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Bob
Checkout
![Page 34: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/34.jpg)
Serveur
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Bob
Checkout
V 0.51V 0.51
V 0.51
![Page 35: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/35.jpg)
Serveur
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Bob
V 0.51V 0.51
V 0.51
![Page 36: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/36.jpg)
Serveur
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Bob
V 0.51V 0.51
V 0.51
![Page 37: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/37.jpg)
Serveur
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Bob
Commit
V 0.51V 0.51
V 0.51
![Page 38: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/38.jpg)
Serveur
Commandes de bases
V 0.50
V 0.51
V 0.52
Bob
Commit
V 0.51V 0.51
V 0.51
V 0.54
V 0.53
![Page 39: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/39.jpg)
Serveur
Commandes de bases
V 0.50
V 0.51
V 0.52
Bob
V 0.51V 0.51
V 0.51
V 0.54
V 0.53
![Page 40: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/40.jpg)
Gestion des conflits
Dével.Checkout V 0.54
Commit ? Conflit !
Fusion
V 0.56
Commit ? Succès !
V 0.55 !!
![Page 41: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/41.jpg)
Fusion de 2 versions
![Page 42: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/42.jpg)
Fusion de 2 versionsavec l’ancêtre commun
![Page 43: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/43.jpg)
Exemple d’historique
![Page 44: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/44.jpg)
Un VCS est
• Un filet de sécurité pour revenir en arrière• Un référentiel commun• Une aide à la gestion des conflits
![Page 45: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/45.jpg)
© 2011 - 2012, All The Memes LLC. All Rights Reserved.
![Page 46: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/46.jpg)
Branches et tags
Vincent Driessen blog post : http://nvie.com/archives/323 (CC BY-SA)
![Page 47: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/47.jpg)
Branches et tags
Vincent Driessen blog post : http://nvie.com/archives/323 (CC BY-SA)
![Page 48: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/48.jpg)
Branches et tags
Vincent Driessen blog post : http://nvie.com/archives/323 (CC BY-SA)
![Page 49: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/49.jpg)
SVNSubversion, « CVS Done Right »
![Page 50: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/50.jpg)
Gestionnaire de source
• Un filet de sécurité pour revenir en arrière• Un référentiel commun• Une aide à la gestion des conflits
![Page 51: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/51.jpg)
SVN
• Un filet de sécurité pour revenir en arrière• Un référentiel commun• Une aide à la gestion des conflits
![Page 52: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/52.jpg)
Problème 1
• Si je commit, je met en commun• Si je met en commun, je commit
Filet de sécurité commit mise en commun⇒ ⇒
![Page 53: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/53.jpg)
Problème 2
Dével.Checkout V 0.54
Commit ? Conflit !
Fusion
V 0.56
Commit ? Succès !
V 0.55 !!
On a toujours pas commité ! Mise
en commun sans filet de sécurité
![Page 54: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/54.jpg)
Secret de codeurs
http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html
![Page 55: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/55.jpg)
http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html
![Page 56: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/56.jpg)
http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html
![Page 57: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/57.jpg)
DVCS
Distributed Version Control SystemGestionnaire de source distribué
![Page 58: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/58.jpg)
Les VCS client - serveur
Serveur
Client de
Bob
Client de
Tom
Client deLéa
![Page 59: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/59.jpg)
Les DVCS
(la plupart du temps)
Dépôt commun
Dépôt de
Bob
Dépôt de
Tom
Dépôt de Léa
![Page 60: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/60.jpg)
Les DVCS
En théorie toutes les configurations sont possibles
Mais ce n’est pas le plus important !
Dépôt commun
Dépôt de Bob(stagiaire de Tom)
Dépôt de
Tom
Dépôt de Léa
![Page 61: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/61.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Clone
![Page 62: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/62.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Clone
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.53
![Page 63: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/63.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.53
![Page 64: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/64.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.53
Checkout
![Page 65: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/65.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.53
V 0.51V 0.51
V 0.51
Checkout
![Page 66: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/66.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.53
V 0.51V 0.51
V 0.51
![Page 67: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/67.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.53
V 0.51V 0.51
V 0.51
![Page 68: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/68.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.51V 0.51
V 0.51
Commit
V 0.53
![Page 69: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/69.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.51V 0.51
V 0.51
Commit
V 0.54
V 0.53
![Page 70: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/70.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
V 0.53
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.51V 0.51
V 0.51
V 0.54
V 0.53
Push
![Page 71: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/71.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.51V 0.51
V 0.51
V 0.54
V 0.53
Push
V 0.54
V 0.53
![Page 72: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/72.jpg)
Dépôt distant
Commandes de bases
V 0.50
V 0.51
V 0.52
Dépôt local
V 0.50
V 0.51
V 0.52
V 0.51V 0.51
V 0.51
V 0.54
V 0.53
V 0.54
V 0.53
![Page 73: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/73.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Clone Checkout
![Page 74: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/74.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
![Page 75: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/75.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Dével.Commit
intermédiaire
Modif A
![Page 76: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/76.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Dépôt de Léa
Modif B Modif A
![Page 77: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/77.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Dével.Commit
intermédiaire
Modif B Modif A
Modif C
![Page 78: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/78.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Modif B Modif A
Modif C
![Page 79: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/79.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Modif B Modif A
Modif C
Fetch
Modif B
![Page 80: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/80.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Modif B Modif A
Modif C
Modif B
![Page 81: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/81.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Modif B Modif A
Modif C
Modif B
Fusion, avec filets de sécuritéFusion
![Page 82: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/82.jpg)
Dépôt distant
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54 V 0.54
Modif B Modif A
Modif C
Modif B
Push
Fusion
![Page 83: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/83.jpg)
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54
Modif A
Modif C
Modif B
Push
Fusion
Dépôt distant
V 0.54
Modif A
Modif C
Modif B
Fusion
![Page 84: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/84.jpg)
Gestion des conflits
Dépôt local
V 0.51V 0.51
V 0.51V 0.54
Modif A
Modif C
Modif B
Fusion
Dépôt distant
V 0.54
Modif A
Modif C
Modif B
Fusion
L’historique est clair, on voit les modifications de chacun avant fusion, et quels décisions ont été prise lors de la fusion
![Page 85: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/85.jpg)
Rappel du problèmeavec un VCS Client-Serveur
• Si je commit, je met en commun• Si je met en commun, je commit
Ce que je fais impact le reste de l’équipe. Soit je fais ce qui les arrange, soit ce qui m’arrange,
mais pas les 2.
![Page 86: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/86.jpg)
Avec un DVCS
• Je commit en local à mon rythme– Pas forcément à la cible final des critères de mon
organisation• Avec autant de filet de sécurité que nécessaire• Sans géner les autres
C’est mon workflow personnel !
![Page 87: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/87.jpg)
Avec un DVCS
• Je pousse mes modifications sur le dépôt commun au bon moment
• Je vérifie que mes sources respectent les critères éventuels de l’organisation avant de les pousser
C’est le workflow organisationnel !
![Page 88: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/88.jpg)
Exemple d’historique
![Page 89: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/89.jpg)
Fusion systématique de 2 versionsavec l’ancêtre commun
![Page 90: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/90.jpg)
© 2011 - 2012, All The Memes LLC. All Rights Reserved.
![Page 91: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/91.jpg)
GIT"the stupid content tracker"
![Page 92: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/92.jpg)
Historique des DVCS seuls
• …• BitKeeper (1998)• Monotone (2000)• Mercurial (2005)• Bazaar (2005)• Git (2005)• …
![Page 93: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/93.jpg)
Origine de git :gestion de source du noyau libre Linux
• BitKeeper jusqu’en 2005– propriétaire (!)
• Révocation de la licence– conflit avec un contributeur
• Création par Linus Torvald– Auto hébergement : 5 j pour git, 1 an pour svn– V1.0 : 1 an pour git, 3,5 ans pour svn
• Aujourd’hui (7 ans après)– Mature– Massivement adopté par la communauté Open Source– Supporté dans l’industrie– Supporté par Microsoft
• TFS, Visual Studio, Azure, CodePlex, …
![Page 94: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/94.jpg)
“Take CVS as an exampleof what not to do;
if in doubt, make theexact opposite decision”
![Page 95: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/95.jpg)
![Page 96: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/96.jpg)
![Page 97: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/97.jpg)
![Page 98: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/98.jpg)
![Page 99: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/99.jpg)
![Page 100: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/100.jpg)
![Page 101: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/101.jpg)
• Une transformation dans le monde open source
![Page 102: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/102.jpg)
Déploiement en continu
• Hébergeurs supportant le « push » d’un commit git sur leur serveur git, qui déclenche chez eux– Une compilation– Le lancement des tests– Le déploiement• en environnement de test ou de production
![Page 103: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/103.jpg)
Authentification et gestion des droits ?
• Ce n’est pas son rôle– il délègue aux spécialistes• SSH• Gitolite• GitLab• …
![Page 104: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/104.jpg)
RETOUR D’EXPÉRIENCEDISCLAIMER : Subjectif
![Page 105: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/105.jpg)
SVN / TFS
• Contexte professionnel
![Page 106: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/106.jpg)
Git : contexte personnel progressifdepuis quelques années
• Articles• Livres• Conférences• Mise en pratique sur des projets personnels
![Page 107: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/107.jpg)
Git : contexte professionneldepuis un an
• Mis en place sur un projet pour un client– Équipe habitué aux interfaces graphiques
• Généralisé ensuite à toute la société– 7 développeurs– une dizaine de dépôts git• dont un transverse commun (sous-module git)
– une gestion fine des droits par Gitolite
![Page 108: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/108.jpg)
Git Extensions
Très bien, mature et pédagogique pour les équipes habitués aux interfaces graphiques
![Page 109: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/109.jpg)
Contexte agile
• Hygiène du code– Commits fréquents– Commits propres et unitaires
• Livraisons fréquentes• Équipe auto-organisée– Diminution des intermédiaires– Augmentation de l’autonomie
• Accepter le changement– Revoir nos choix techniques si nécessaire
• Déploiement en continu
![Page 110: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/110.jpg)
Livraison fréquente
• Centralisé (svn, …)– Gros ralentissement
dans l’équipe• Suivi d’un merge énorme
et complexe par personne
– Voir chômage technique– Dramatique sur une
itération courte !
• Décentralisé (git, …)– Contournement sur un
nouveau dépôt dans le réseau lan, cloné depuis n’importe quelle machine de développeur (une commande)
– Pas d’impact client
Si serveur central hors service (panne matérielle, coupure réseau, erreur de manipulation…), en moyenne une fois par an en ce qui me concerne
Et travail dans le train ;-)
![Page 111: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/111.jpg)
Autonomie de l’équipe
• Centralisé (svn, …)– On va ouvrir un ticket
auprès des sysadmin, puis attendre…
• Décentralisé (git, …)– Difficilement applicable,
le serveur n’est quasiment pas sollicité (la majorité des commandes sont locales)
– Si besoin, création d’un dépôt proxy interne à l’équipe
Si serveur central surchargé, devenant lent
![Page 112: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/112.jpg)
Revoir les choix techniques
• Centralisé (svn, …)– Choix initial structurant– Si modifié, perte
d’historique
• Git– Commandes
extrêmement puissante permettant de fusionner 2 dépôts ou d’en séparer un en 2, en conservant juste l’historique correspondant à chaque moitié
– (cas réel !)
Structuration de la gestion de version sur des portefeuilles de projets
![Page 113: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/113.jpg)
Ce que j’entenddans une équipe svn
• $#?!! de gestionnaire de version• Oh non ! Bob a encore commité avant moi !• Boutades– « SVN c’est le mal »
![Page 114: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/114.jpg)
Ce que j’entenddans une équipe git
• Git, c’est magique !• Ça marche quand même vachement bien leur
truc…• Nan, tu peux faire ça avec git ???• C’est trop beau pour être vrai, c’est pas
possible– (dit à @nledez hier par un inconditionnel de svn)
![Page 115: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/115.jpg)
Opérations quotidiennes et triviales(moins de 1 minute)
• SVN– Checkout– Commit ? (conflits…)– Surtout pas les fusions de branches
• Git– Checkout– Commit– Fusion de commits– Fusion de branches
• Y compris croisées de l’une à l’autre et de l’autre à l’une
– Création d’un nouveau dépôt– Création d’une branche– …
![Page 116: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/116.jpg)
CP OLD, SVN, et GIT
• CP OLD est évidemment impossible sur le long terme
• SVN ne remplace pas entièrement CP OLD !– Je veux juste créer un petit programme en 2h, je
ne veux pas créer un serveur SVN pour ça– Etc.
• Git, si.– Dans le même cas, j’ai le réflexe de créer un dépôt
git : « Git init »
![Page 117: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/117.jpg)
Aucun mur ?
• Une exception– Les sous modules, le seul « mur » que l’on ce soit
pris• Au point d’entacher le reste de la perception de git
– La meilleure solution que j’ai trouvé à ce jour pour ce problème complexe
– Mais mauvaise ergonomie de la fonctionnalité
![Page 118: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/118.jpg)
Alors, choisissons git ?• Hobby ou Open-Source
– Oui, nouvelle référence devant svn, mercurial, bazaar, ou TFS• Pro : Ça dépend de vos contextes
– Politique de sécurité de la société• SSH• Disque dur crypté ?
– Équipe• Volonté d’y aller
– Délais• Si vous maitrisez svn depuis des années, et que vous avez bientôt une livraison, alors non
– Etc• Transition douce ?
– Git-svn et git-tfs• Ponts entre git et svn/tfs
• DVCS alternatifs ?– Mercurial, Plastic-SCM, Kiln …
![Page 119: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/119.jpg)
Pointeurs
• Pour approfondir Git plus longuement
http://presentation-git.heroku.com
![Page 120: En quoi git serait plus agile que svn ?](https://reader035.vdocuments.net/reader035/viewer/2022062512/5539801b4a79597c778b4989/html5/thumbnails/120.jpg)
DES QUESTIONS [email protected] / @gcollic