Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Quand Git rencontre TFS,
que peut-on en attendre ?

Guillaume Collic & François Bouteruche

Code/Developpement
Casting

François
Bouteruche
#mstechdays

Guillaume
Collic
Code/developpement
François Bouteruche
• Architecte .NET et évangéliste ALM
• Administrateur Cloud TFS OBS
• http://francoisbouteruche.wordpr...
Guillaume Collic
•
•
•
•
•
•

Développeur et Coach Agile
Microsoft ALM MVP
http://www.guillaumecollic.com
gcollic@gmail.co...
Objectifs
• 45 minutes, c’est court !
• Vision globale
• Pointeurs

#mstechdays

Code/developpement
Plan
• Ce que l'on attend d'un gestionnaire de
source (VCS)
• Réponses différentes des VCS distribués
(DVCS) à ces attente...
#mstechdays

Code/developpement
Tests
├
Test1
├
Test2
├
Test3

#mstechdays

Success
Success
Success

Code/developpement
├
├
├
├

#mstechdays

Tests
Test1
Test2
Test3
Test4

1 test failed
Success
Success
Success
Failed

Code/developpement
├
├
├
├

#mstechdays

Tests
Test1
Test2
Test3
Test4

4 tests failed
Failed
Failed
Failed
Failed

Code/developpement
#mstechdays

Code/developpement
#mstechdays

Code/developpement
#mstechdays

Code/developpement
CPOLD
Le gestionnaire de source le plus utilisé au monde

#mstechdays

Code/developpement
CP OLD
Tests
├
Test1
├
Test2
├
Test3

Success
Success
Success

src
#mstechdays

Code/developpement
CP OLD
Tests
├
Test1
├
Test2
├
Test3

src
#mstechdays

Success
Success
Success

old
Code/developpement
CP OLD
├
├
├
├

Tests
Test1
Test2
Test3
Test4
src

#mstechdays

1 test failed
Success
Success
Success
Failed

old
Code/dev...
CP OLD
├
├
├
├

Tests
Test1
Test2
Test3
Test4
src

#mstechdays

4 tests failed
Failed
Failed
Failed
Failed

old
Code/devel...
CP OLD

old
#mstechdays

Code/developpement
CP OLD
Tests
├
Test1
├
Test2
├
Test3

Success
Success
Success

src
#mstechdays

Code/developpement
#mstechdays

Code/developpement
Un VCS est

• Un filet de sécurité pour revenir en
arrière

#mstechdays

Code/developpement
#mstechdays

Code/developpement
src

#mstechdays

Code/developpement
src

#mstechdays

Code/developpement
src

#mstechdays

livraison1

livraison2

Code/developpement
#mstechdays

Code/developpement
Un VCS est
• Un filet de sécurité pour revenir en arrière
• Un référentiel commun

#mstechdays

Code/developpement
Et là …
#mstechdays

Code/developpement
#mstechdays

Code/developpement
Mon travail !
Écrasé !

#mstechdays

Code/developpement
Outils dédiés
(

CVS

1990
#mstechdays

1994

2000

TFVC

2005
Code/developpement

)

2014
VCS client – serveur (centralisé)
Serveur

Bob

#mstechdays

Tom

Léa

Code/developpement
Commandes de bases
Get
Serveur

Bob

V 0.50

V 0.51

V 0.52

#mstechdays

Code/developpement
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
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
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
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
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/developpem...
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
Gestion des conflits
Get

V 0.53

V 0.54 !!

Dével.

Checkin?
Conflit !

Fusion

Checkin?
Succès !
V 0.55
#mstechdays

Cod...
Un VCS est
• Un filet de sécurité pour revenir en arrière
• Un référentiel commun
• Une aide à la gestion des conflits

#m...
#mstechdays

Code/developpement
Un VCS est
• Un filet de sécurité pour revenir en
arrière
• Un référentiel commun
• Une aide à la gestion des conflits

#m...
Problème 1
Filet de sécurité
⇒ commit
⇒ mise en commun

#mstechdays

Code/developpement
Problème 2
Get

V 0.53

V 0.54 !!

Dével.

Checkin?
Conflit !

Fusion

Checkin?
Succès !
V 0.55
#mstechdays

Code/developp...
Secret de codeurs

#mstechdays

http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html
C...
Secret de codeurs

#mstechdays

http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html
C...
Secret de codeurs

#mstechdays

http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html
C...
DVCS
Gestionnaire de source distribué

#mstechdays

Code/developpement
Les VCS client - serveur
Serveur

Bob

#mstechdays

Tom

Léa

Code/developpement
Les DVCS (VCS distribués /
décentralisés)
Serveur

Bob

Léa

Bob

#mstechdays

Tom
Tom

Léa

Code/developpement
Les DVCS (VCS distribués /
décentralisés)

• En théorie toutes les configurations sont possibles
Dépôt officiel

Développe...
Les DVCS (VCS distribués /
décentralisés)
• la plupart du temps !

Serveur

Bob

Léa

Bob

#mstechdays

Tom
Tom

Léa

Code...
Commandes de bases
Clone
Dépôt distant
V 0.50

V 0.51

V 0.52

#mstechdays

Code/developpement
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/deve...
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/developpem...
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/d...
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/d...
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/developpem...
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/developpem...
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/dev...
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

...
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

Co...
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...
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

...
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 ...
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
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édiair...
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/develop...
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.
Co...
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...
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 ...
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

#ms...
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
Fusi...
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...
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...
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...
DVCS : workflow organisationnel
• Comme avant
– Je pousse sur le
référentiel commun
– Dès que possible
– En respectant les...
DVCS : workflow personnel
• En plus, j’ai gagné le
commit local
– Autant de filet de sécurité
que voulu
– Pas forcément à ...
#mstechdays

Code/developpement
TFS 2013
Gestion de version
Éléments
de travail

Build
VCS :
TFVC

#mstechdays

DVCS :
Git

Code/developpement

…
TRAVAILLER AVEC GIT ET
TFS
Une évolution oui, une révolution non !
AU QUOTIDIEN
#mstechdays

Code/developpement
Au début, il y avait du code source
• Mon client préféré® veut faire des
évolutions sur son application
– il souhaite que ...
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 jus...
N’oublions pas de créer le projet d’équipe
• Dans TFS, tout se passe dans les projets
d’équipe

#mstechdays

Code/developp...
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
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/de...
Initialisons notre dépôt TFS
• On synchronise notre dépôt local avec le
dépôt TFS

#mstechdays

Code/developpement
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 d...
Je commit, je push, tu pull
• Vous pouvez (devez ?) associez un work
item
– À votre commit

• Quand vous avez fini de déve...
Et maintenant, collaborons !
• Les membres de l’équipe peuvent cloner le
dépôt TFS

#mstechdays

Code/developpement
Git et TFS, ça me branche !
• N’ayez plus peur de faire des branches
– Elles sont légères
– Le merge est vraiment performa...
LE JEU DES 7 DIFFÉRENCES

#mstechdays

Code/developpement
Le vocabulaire
• TFVC
– Get, checkout, …

• Git pur
– Pull, checkout, commit, …

• Git dans Visual Studio
– Sync, commit, ...
Git dans VS ne permet pas encore tout
•
•
•
•
•
•

Gated Check-In
Code Review
File History Annotation
My work
Source Contr...
FAIRE LE SAUT
Être outillé

#mstechdays

Code/developpement
Structuration de vos (gros) projets
TFVC
• Un seul gros dépôt de source
•

•

•

Des dossiers pour les
différentes parties...
Attention aux faux-amis
Visual Studio

#mstechdays

Git Extensions

Code/developpement
Git Extensions (ou d’autres, SourceTree, CLI, etc)
• Rebase
• etc

Très bien, mature et pédagogique pour les équipes habit...
Construisons un pont entre Git et TFVC

#mstechdays

Code/developpement
Ponts entre Git et TFVC
• http://git-tfs.com
• http://gittf.codeplex.com/
TFVC
central

Git
local

Checkin
Checkin

Commit...
LA FIN EST PROCHE
En conclusion

#mstechdays

Code/developpement
Git & Visual Studio
•

Guillaume, habitué à Git
avant son intégration à
VS, graphique ou CLI

•

François, habitué à
TFVC ...
45 minutes, c’est court
• Nous n’avons pas parlé de
–
–
–
–
–
–

#mstechdays

Rebase
Staging
Sous-modules
Bisect
Stash
Et ...
Pour aller plus loin
• Comprendre Git plus en profondeur
– http://presentation-git.heroku.com par gitfr / Sébastien
Douche...
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!...
Questions ?
• Comprendre Git plus en profondeur
– http://presentation-git.heroku.com par gitfr / Sébastien
Douche

• Site ...
Digital is
business
Quand GIT rencontre TFS, que peut-on en attendre ?
Upcoming SlideShare
Loading in …5
×

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

1,632 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
  • Be the first to comment

  • Be the first to like this

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

×