Quand GIT rencontre TFS, que peut-on en attendre ?

1,231 views
1,074 views

Published on

On parle de plus en plus de gestionnaire de version « distribué » (DVCS). Git en particulier devient le DVCS de référence, y compris dans les outils Microsoft (Visual Studio, TFS, CodePlex, et même Azure pour le déploiement). Nous reverrons l'évolution qu'ont suivi les gestionnaire de version, des prémices des VCS jusqu'aux DVCS, pour répondre à cette question : Pourquoi cet engouement envers les DVCS, en quoi sont-ils si différents de TFVC en usage professionnel ? Ensuite, nous verrons comment GIT s’intègre avec les autres fonctionnalités de Visual Studio 2013 et Team Foundation Server 2013 et ce que cela peut changer concrètement dans la manière de travailler avec Team Foundation Server.

Speakers : François Bouteruche (Orange Business Services), Guillaume Collic (Sodewiva)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,231
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Scénario + Images : F => mais Guillaume t’as pas backupé ton travail ?
  • Quand GIT rencontre TFS, que peut-on en attendre ?

    1. 1. Quand Git rencontre TFS, que peut-on en attendre ? Guillaume Collic & François Bouteruche Code/Developpement
    2. 2. Casting François Bouteruche #mstechdays Guillaume Collic Code/developpement
    3. 3. François Bouteruche • Architecte .NET et évangéliste ALM • Administrateur Cloud TFS OBS • http://francoisbouteruche.wordpress.com • francois.bouteruche@orange.com • @fbouteruche #mstechdays Code/developpement
    4. 4. Guillaume Collic • • • • • • Développeur et Coach Agile Microsoft ALM MVP http://www.guillaumecollic.com gcollic@gmail.com @gcollic Indépendant #mstechdays Code/developpement
    5. 5. Objectifs • 45 minutes, c’est court ! • Vision globale • Pointeurs #mstechdays Code/developpement
    6. 6. Plan • Ce que l'on attend d'un gestionnaire de source (VCS) • Réponses différentes des VCS distribués (DVCS) à ces attentes • Travailler avec Git et TFS au quotidien • Pour aller plus loin #mstechdays Code/developpement
    7. 7. #mstechdays Code/developpement
    8. 8. Tests ├ Test1 ├ Test2 ├ Test3 #mstechdays Success Success Success Code/developpement
    9. 9. ├ ├ ├ ├ #mstechdays Tests Test1 Test2 Test3 Test4 1 test failed Success Success Success Failed Code/developpement
    10. 10. ├ ├ ├ ├ #mstechdays Tests Test1 Test2 Test3 Test4 4 tests failed Failed Failed Failed Failed Code/developpement
    11. 11. #mstechdays Code/developpement
    12. 12. #mstechdays Code/developpement
    13. 13. #mstechdays Code/developpement
    14. 14. CPOLD Le gestionnaire de source le plus utilisé au monde #mstechdays Code/developpement
    15. 15. CP OLD Tests ├ Test1 ├ Test2 ├ Test3 Success Success Success src #mstechdays Code/developpement
    16. 16. CP OLD Tests ├ Test1 ├ Test2 ├ Test3 src #mstechdays Success Success Success old Code/developpement
    17. 17. CP OLD ├ ├ ├ ├ Tests Test1 Test2 Test3 Test4 src #mstechdays 1 test failed Success Success Success Failed old Code/developpement
    18. 18. CP OLD ├ ├ ├ ├ Tests Test1 Test2 Test3 Test4 src #mstechdays 4 tests failed Failed Failed Failed Failed old Code/developpement
    19. 19. CP OLD old #mstechdays Code/developpement
    20. 20. CP OLD Tests ├ Test1 ├ Test2 ├ Test3 Success Success Success src #mstechdays Code/developpement
    21. 21. #mstechdays Code/developpement
    22. 22. Un VCS est • Un filet de sécurité pour revenir en arrière #mstechdays Code/developpement
    23. 23. #mstechdays Code/developpement
    24. 24. src #mstechdays Code/developpement
    25. 25. src #mstechdays Code/developpement
    26. 26. src #mstechdays livraison1 livraison2 Code/developpement
    27. 27. #mstechdays Code/developpement
    28. 28. Un VCS est • Un filet de sécurité pour revenir en arrière • Un référentiel commun #mstechdays Code/developpement
    29. 29. Et là … #mstechdays Code/developpement
    30. 30. #mstechdays Code/developpement
    31. 31. Mon travail ! Écrasé ! #mstechdays Code/developpement
    32. 32. Outils dédiés ( CVS 1990 #mstechdays 1994 2000 TFVC 2005 Code/developpement ) 2014
    33. 33. VCS client – serveur (centralisé) Serveur Bob #mstechdays Tom Léa Code/developpement
    34. 34. Commandes de bases Get Serveur Bob V 0.50 V 0.51 V 0.52 #mstechdays Code/developpement
    35. 35. Commandes de bases Get Serveur Bob V 0.50 V 0.51 V 0.51 V 0.51 V 0.51 V 0.52 #mstechdays Code/developpement
    36. 36. Commandes de bases Serveur Bob V 0.50 V 0.51 V 0.51 V 0.51 V 0.51 V 0.52 #mstechdays Code/developpement
    37. 37. Commandes de bases Serveur Bob V 0.50 V 0.51 V 0.51 V 0.51 V 0.51 (Checkout) V 0.52 #mstechdays Code/developpement
    38. 38. Commandes de bases Checkin Serveur Bob V 0.50 V 0.51 V 0.51 V 0.51 V 0.51 V 0.52 #mstechdays Code/developpement
    39. 39. Commandes de bases Checkin Serveur Bob V 0.50 V 0.51 V 0.51 V 0.51 V 0.51 V 0.52 V 0.53 #mstechdays Code/developpement
    40. 40. Commandes de bases Serveur Bob V 0.50 V 0.51 V 0.51 V 0.51 V 0.51 V 0.52 V 0.53 #mstechdays Code/developpement
    41. 41. Gestion des conflits Get V 0.53 V 0.54 !! Dével. Checkin? Conflit ! Fusion Checkin? Succès ! V 0.55 #mstechdays Code/developpement
    42. 42. Un VCS est • Un filet de sécurité pour revenir en arrière • Un référentiel commun • Une aide à la gestion des conflits #mstechdays Code/developpement
    43. 43. #mstechdays Code/developpement
    44. 44. Un VCS est • Un filet de sécurité pour revenir en arrière • Un référentiel commun • Une aide à la gestion des conflits #mstechdays Code/developpement
    45. 45. Problème 1 Filet de sécurité ⇒ commit ⇒ mise en commun #mstechdays Code/developpement
    46. 46. Problème 2 Get V 0.53 V 0.54 !! Dével. Checkin? Conflit ! Fusion Checkin? Succès ! V 0.55 #mstechdays Code/developpement On a toujours pas commité ! Mise en commun sans filet de sécurité
    47. 47. Secret de codeurs #mstechdays http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html Code/developpement
    48. 48. Secret de codeurs #mstechdays http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html Code/developpement
    49. 49. Secret de codeurs #mstechdays http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html Code/developpement
    50. 50. DVCS Gestionnaire de source distribué #mstechdays Code/developpement
    51. 51. Les VCS client - serveur Serveur Bob #mstechdays Tom Léa Code/developpement
    52. 52. Les DVCS (VCS distribués / décentralisés) Serveur Bob Léa Bob #mstechdays Tom Tom Léa Code/developpement
    53. 53. Les DVCS (VCS distribués / décentralisés) • En théorie toutes les configurations sont possibles Dépôt officiel Développeur Responsable module A Azure Responsable module B • Mais ce n’est pas le plus important en entreprise ! #mstechdays Code/developpement
    54. 54. Les DVCS (VCS distribués / décentralisés) • la plupart du temps ! Serveur Bob Léa Bob #mstechdays Tom Tom Léa Code/developpement
    55. 55. Commandes de bases Clone Dépôt distant V 0.50 V 0.51 V 0.52 #mstechdays Code/developpement
    56. 56. Commandes de bases Clone Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 #mstechdays Dépôt local V 0.52 Code/developpement
    57. 57. Commandes de bases Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 #mstechdays Dépôt local V 0.52 Code/developpement
    58. 58. Commandes de bases Checkout Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 #mstechdays Dépôt local V 0.52 Code/developpement
    59. 59. Commandes de bases Checkout Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 #mstechdays Dépôt local V 0.52 Code/developpement V 0.51 V 0.51 V 0.51
    60. 60. Commandes de bases Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 #mstechdays Dépôt local V 0.52 Code/developpement V 0.51 V 0.51 V 0.51
    61. 61. Commandes de bases Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 #mstechdays Dépôt local V 0.52 Code/developpement V 0.51 V 0.51 V 0.51
    62. 62. Commandes de bases Commit Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 #mstechdays Dépôt local V 0.52 Code/developpement V 0.51 V 0.51 V 0.51
    63. 63. Commandes de bases Commit Dépôt distant Dépôt local V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 V 0.52 V 0.54 #mstechdays Code/developpement V 0.51 V 0.51 V 0.51
    64. 64. Commandes de bases Push Dépôt distant Dépôt local V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 V 0.52 V 0.54 #mstechdays Code/developpement V 0.51 V 0.51 V 0.51
    65. 65. Commandes de bases Push Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 V 0.52 V 0.54 #mstechdays Dépôt local V 0.54 Code/developpement V 0.51 V 0.51 V 0.51
    66. 66. Commandes de bases Dépôt distant V 0.50 V 0.50 V 0.51 V 0.51 V 0.52 V 0.52 V 0.54 #mstechdays Dépôt local V 0.54 Code/developpement V 0.51 V 0.51 V 0.51
    67. 67. Gestion des conflits Fetch Checkout Dépôt distant V 0.54 #mstechdays Dépôt local V 0.54 Code/developpement V 0.51 V 0.51 V 0.51
    68. 68. Gestion des conflits Dépôt distant V 0.54 #mstechdays Dépôt local V 0.54 Code/developpement V 0.51 V 0.51 V 0.51
    69. 69. Gestion des conflits Dépôt distant Dépôt local V 0.54 V 0.54 V 0.51 V 0.51 V 0.51 Modif A Dével. Commit intermédiaire #mstechdays Code/developpement
    70. 70. Gestion des conflits Dépôt distant Dépôt local V 0.54 V 0.54 Modif B Modif A Dépôt de Léa #mstechdays Code/developpement V 0.51 V 0.51 V 0.51
    71. 71. Gestion des conflits Dépôt distant Dépôt local V 0.54 V 0.54 Modif B Modif A Modif C V 0.51 V 0.51 V 0.51 Dével. Commit intermédiaire #mstechdays Code/developpement
    72. 72. Gestion des conflits Dépôt distant Dépôt local V 0.54 V 0.54 Modif B Modif A Modif C #mstechdays Code/developpement V 0.51 V 0.51 V 0.51
    73. 73. Gestion des conflits Fetch Dépôt distant V 0.54 Modif B Dépôt local V 0.54 Modif B V 0.51 V 0.51 V 0.51 Modif A Modif C #mstechdays Code/developpement
    74. 74. Gestion des conflits Dépôt distant V 0.54 Modif B Dépôt local V 0.54 Modif B V 0.51 V 0.51 V 0.51 Modif A Modif C #mstechdays Code/developpement
    75. 75. Gestion des conflits Dépôt distant V 0.54 Modif B Dépôt local V 0.54 Modif B V 0.51 V 0.51 V 0.51 Modif A Modif C Fusion #mstechdays Code/developpement Merge => avec filets de sécurité
    76. 76. Gestion des conflits Push Dépôt distant V 0.54 Modif B Dépôt local V 0.54 Modif B V 0.51 V 0.51 V 0.51 Modif A Modif C Fusion #mstechdays Code/developpement
    77. 77. Gestion des conflits Push Dépôt distant V 0.54 Modif B V 0.54 Modif A Modif C Fusion #mstechdays Dépôt local Modif B V 0.51 V 0.51 V 0.51 Modif A Modif C Fusion Code/developpement
    78. 78. Gestion des conflits Dépôt distant V 0.54 Modif B V 0.54 Modif A Modif C Fusion #mstechdays Dépôt local Modif B V 0.51 V 0.51 V 0.51 Modif A Modif C Fusion Code/developpement
    79. 79. DVCS : workflow organisationnel • Comme avant – Je pousse sur le référentiel commun – Dès que possible – En respectant les critères de mon organisation • Compilation • Tests unitaires • Qualité du code #mstechdays Dépôt commun Dépôt de Bob Dépôt de Tom Dépôt de Léa Bob Tom Léa Code/developpement
    80. 80. DVCS : workflow personnel • En plus, j’ai gagné le commit local – Autant de filet de sécurité que voulu – Pas forcément à la cible finale – Des commandes qui deviennent quasiinstantanées car locales • Commit, log, diff… #mstechdays Dépôt commun Dépôt de Bob Dépôt de Tom Dépôt de Léa Bob Tom Léa Code/developpement
    81. 81. #mstechdays Code/developpement
    82. 82. TFS 2013 Gestion de version Éléments de travail Build VCS : TFVC #mstechdays DVCS : Git Code/developpement …
    83. 83. TRAVAILLER AVEC GIT ET TFS Une évolution oui, une révolution non ! AU QUOTIDIEN #mstechdays Code/developpement
    84. 84. Au début, il y avait du code source • Mon client préféré® veut faire des évolutions sur son application – il souhaite que je parte du code de l’application existante – il souhaite que je travaille sur mes infrastructures de développement – il souhaite pouvoir récupérer à tout moment le code source et l’historique de son évolution • Tiens, ça m’évoque les problèmes de réversibilité et de reprise de TMA !? #mstechdays Code/developpement
    85. 85. Au début, il y avait du code source • Dans le meilleur des cas, Mon client préféré® est déjà sous Git – Super, je vais juste à avoir à cloner son dépôt et à l’intégrer dans mon dépôt TFS • Dans le pire des cas, mon client utilise la méthode CP old et je vais créer moi-même un dépôt Git #mstechdays Code/developpement
    86. 86. N’oublions pas de créer le projet d’équipe • Dans TFS, tout se passe dans les projets d’équipe #mstechdays Code/developpement
    87. 87. Récupérons le dépôt de Mon client préféré® • On clone le dépôt distant en local #mstechdays Code/developpement
    88. 88. Initialisons notre dépôt TFS • On reconfigure l’url d’origine du dépôt local avec celle du dépôt TFS #mstechdays Code/developpement
    89. 89. Initialisons notre dépôt TFS • On synchronise notre dépôt local avec le dépôt TFS #mstechdays Code/developpement
    90. 90. Mais où est stocké mon dépôt TFS • Dans la base de données SQL Server ! • L’intégration de Git avec TFS est transparente du point de vue du plan de sauvegarde • L’intégralité du dépôt est sauvegardé – Dans SQL Server – Sur chaque poste ayant un clone du dépôt (! Sécurité !) #mstechdays Code/developpement
    91. 91. Je commit, je push, tu pull • Vous pouvez (devez ?) associez un work item – À votre commit • Quand vous avez fini de développez une feature dans une branche c’est le moment de merger avec la branche master • Vos collègues n’ont plus qu’à puller #mstechdays Code/developpement
    92. 92. Et maintenant, collaborons ! • Les membres de l’équipe peuvent cloner le dépôt TFS #mstechdays Code/developpement
    93. 93. Git et TFS, ça me branche ! • N’ayez plus peur de faire des branches – Elles sont légères – Le merge est vraiment performant – Elles peuvent être locales (personne ne verra que vous êtes branchés) – Elles peuvent être publiées pour partager • N’hésitez plus à brancher chaque feature #mstechdays Code/developpement
    94. 94. LE JEU DES 7 DIFFÉRENCES #mstechdays Code/developpement
    95. 95. Le vocabulaire • TFVC – Get, checkout, … • Git pur – Pull, checkout, commit, … • Git dans Visual Studio – Sync, commit, … => Notions différentes #mstechdays Code/developpement
    96. 96. Git dans VS ne permet pas encore tout • • • • • • Gated Check-In Code Review File History Annotation My work Source Control Explorer Pas de multi-remote #mstechdays Code/developpement
    97. 97. FAIRE LE SAUT Être outillé #mstechdays Code/developpement
    98. 98. Structuration de vos (gros) projets TFVC • Un seul gros dépôt de source • • • Des dossiers pour les différentes parties Mapping partiel de sous dossiers Pas de problème technique pour mettre de gros binaires #mstechdays Git • Séparer en plusieurs petits dépôts • Pas de clone partiel : tout ou rien • Pas de gros binaires Code/developpement
    99. 99. Attention aux faux-amis Visual Studio #mstechdays Git Extensions Code/developpement
    100. 100. Git Extensions (ou d’autres, SourceTree, CLI, etc) • Rebase • etc Très bien, mature et pédagogique pour les équipes habitués aux interfaces graphiques #mstechdays Code/developpement
    101. 101. Construisons un pont entre Git et TFVC #mstechdays Code/developpement
    102. 102. Ponts entre Git et TFVC • http://git-tfs.com • http://gittf.codeplex.com/ TFVC central Git local Checkin Checkin Commit Checkin #mstechdays Commit Commit Code/developpement V 0.51 V 0.51 V 0.51
    103. 103. LA FIN EST PROCHE En conclusion #mstechdays Code/developpement
    104. 104. Git & Visual Studio • Guillaume, habitué à Git avant son intégration à VS, graphique ou CLI • François, habitué à TFVC et adepte des outils graphiques Travaillent ensemble sur le même projet , sans accroc, chacun avec ses pratiques #mstechdays Code/developpement
    105. 105. 45 minutes, c’est court • Nous n’avons pas parlé de – – – – – – #mstechdays Rebase Staging Sous-modules Bisect Stash Et plein d’autres choses Code/developpement
    106. 106. Pour aller plus loin • Comprendre Git plus en profondeur – http://presentation-git.heroku.com par gitfr / Sébastien Douche • Site officiel et livre français gratuit – http://git-scm.com / http://git-scm.com/book/fr • Dépôt Git en ligne gratuit – Visual Studio Online http://www.visualstudio.com #mstechdays Code/developpement
    107. 107. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Code/developpement
    108. 108. Questions ? • Comprendre Git plus en profondeur – http://presentation-git.heroku.com par gitfr / Sébastien Douche • Site officiel et livre français gratuit – http://git-scm.com / http://git-scm.com/book/fr • Dépôt Git en ligne gratuit – Visual Studio Online http://www.visualstudio.com #mstechdays Code/developpement
    109. 109. Digital is business

    ×