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 ?
Prochain SlideShare
Chargement dans…5
×

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

1 372 vues

Publié le

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)

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 372
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
31
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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

    ×