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

50 %
50 %
Information about Quand GIT rencontre TFS, que peut-on en attendre ?
Technology

Published on February 19, 2014

Author: Developpeurs

Source: slideshare.net

Description

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)

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.wordpress.com • francois.bouteruche@orange.com • @fbouteruche #mstechdays Code/developpement

Guillaume Collic • • • • • • Développeur et Coach Agile Microsoft ALM MVP http://www.guillaumecollic.com gcollic@gmail.com @gcollic Indépendant #mstechdays Code/developpement

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 attentes • Travailler avec Git et TFS au quotidien • Pour aller plus loin #mstechdays Code/developpement

#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/developpement

CP OLD ├ ├ ├ ├ Tests Test1 Test2 Test3 Test4 src #mstechdays 4 tests failed Failed Failed Failed Failed old Code/developpement

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/developpement

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 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 #mstechdays Code/developpement

#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 #mstechdays Code/developpement

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/developpement On a toujours pas commité ! Mise en commun sans filet de sécurité

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

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

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

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éveloppeur Responsable module A Azure Responsable module B • Mais ce n’est pas le plus important en entreprise ! #mstechdays Code/developpement

Les DVCS (VCS distribués / décentralisés) • la plupart du temps ! Serveur Bob Léa Bob #mstechdays Tom Tom Léa Code/developpement

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/developpement

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

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

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

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

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

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

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

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

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

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

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

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édiaire #mstechdays Code/developpement

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

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

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

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

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

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é

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

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

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

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

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

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

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

N’oublions pas de créer le projet d’équipe • Dans TFS, tout se passe dans les projets d’équipe #mstechdays Code/developpement

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/developpement

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

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

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

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, … => Notions différentes #mstechdays Code/developpement

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

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

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 habitués aux interfaces graphiques #mstechdays Code/developpement

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 Checkin #mstechdays Commit Commit Code/developpement V 0.51 V 0.51 V 0.51

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 et adepte des outils graphiques Travaillent ensemble sur le même projet , sans accroc, chacun avec ses pratiques #mstechdays Code/developpement

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

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

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

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

Digital is business

#mstechdays presentations

Add a comment

Related presentations

Related pages

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

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

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

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

Techdays 2014 : La liste des sessions ALM | Visual Studio News

Mardi 11 Février 11h00-11h45: Quand GIT rencontre TFS, que peut-on en attendre ? 11h00-11h45: Cycle de vie d’un projet web agile avec TFS 2013, Azure VM ...
Read more

2014 | Visual Studio News

... que la version présente dans Visual Studio 2010. Vos retours sur la compatibilité de vos projets en ... Quand GIT rencontre TFS, que peut-on en ...
Read more

Quand on n'a Que l'Amour (SATB Choir) - Jacques Brel ...

Share Quand on n'a Que l'Amour (SATB Choir) - Jacques ... Questions françaises Quand est-ce que..... ? Quand est ... Quand GIT rencontre TFS, que peut-on ...
Read more

Using Git with TFS -- Matt Mitrik - YouTube

http://tv.ssw.com/using-git-tfs-matt-mitrik Adam Cogan ... Using Git with TFS ... Quand GIT rencontre TFS, que peut-on en attendre ...
Read more

Microsoft Visual Studio | Facebook

Microsoft Visual Studio @visualstudio.fr. Public Cancel Save Changes. See more of Microsoft Visual Studio by logging into Facebook. Message this Page ...
Read more

Inside ALM - Mathieu Pellegrino

... que Microsoft l’a ... GIT rencontre TFS, que peut-on en attendre ? Cycle de vie d’un projet web agile avec TFS 2013, Azure VM et Monaco NDepend 5 ...
Read more