Verteilte versionsverwaltung mit Team Foundation Server 2012
1. Verteilte Versionsverwaltung
mit Team Foundation Server 2012
Thorsten Ruf
TFSALM Consultant
blog.bbv.ch
thorsten.ruf@bbv.ch
Daniel Marbach
dotnet-zentral.ch
@danielmarbach
daniel.marbach@bbv.ch
30. Verteilte Versionsverwaltung
mit Team Foundation Server 2012
Handout, Sources and more under
http://blog.bbv.ch/2012/11/19/distributed-version-control-with-
team-foundation-server-2012
Notes de l'éditeur
Vorstellen Thorstenbbv:seit knapp 17 Jahren, 180 MA, Softwaredienstleistungen an, von kleinsten Geräten im embeddedservice bis zu verteilten Anwendungen im .net und java Service bis zu spezialisierten Testing DienstleistungenFragen am Ende ausser unsere Fragen: wer setzt bereits TFS ein?EN Handout auf blogMotivationWieso verteilte Versionsverwaltung… TFS hat doch ein zentralisiertes Modell?Wir möchten Ihnen zeigen, dass es in vielen Situation durchaus sinnvoller ist auf ein verteiltes Modell zu setzen.Trotzdem aber nicht die Vorteile vom TFS zu verlieren.Wie Sie das erreichen und die Vorteile für sich nutzen, das werden Sie in den nächsten 60 Minuten erfahren.Vorstellen DaniProvokation Hey Thorsten, Git ist ein mächtiges Verteiltes Versionsverwaltungssystem, da kann TFS direkt einpacken!Dani auf diese Provokation von dir war ich vorbereitet. Switch nächste Folie.
Moderne ALM Plattform somit nicht nur ein VCSTools fürRequirements-Befund – Prozessmanagement (agile Prozesse, Scrum)BuildfunktionalitätTestinfrastrukturDiskussionen im Netz/blogposts/ Vergleich TFS nur immer mit anderen VCS Produkten, alles andere wird einfach «vergessen». Schade bei «2012er» Version einiges dazugekommen und nochmals verbessert
Was soll all das Lästern über die Sourceverwaltung von TFS?Dani: … am häufigsten auftauchenden Beschwerden
Offlineunterstützung fehlt - Lokale Commits - Lokale Branches - Lokale HistoryImmer-Online Model Hohe Latenzzeit
Mergefunktionalität limitiertMehrere Leute am gleichen Code (Umbennennen, Verschieben)Server Workspace Schreibgeschützten Dateien Erschwert Zusammenarbeit mit anderen Tools
Tools verwenden die nicht in VS integriert sind (z.B. Buildscript mit Texteditor) Rückverfolgung von Änderungen schwierig wenn ausserhalb der Standardtoolbox
Opensourcewelt richtige Sourcepatches z.B. via EmailShelvesets als zu schwergewichtig EmpfundenStimmt das noch?
GegenargumentierenNeue Features im TFS 2012 mit VS 2012Gerade zur Verbesserung Offline zu arbeiten
GegenargumentierenOffline – lokale Workspaces schreibgeschützte Dateien Subversion MEHR: lokale history (kurze Pause) Vergleich in Bearbeitung – letzte Version rollbackGrosser SchrittAsync bei checkout – keine Latenz mehr
neuer Team Explorer gesehenundverwendetlokale Build-Datei ausserhalb VSBereich «detectedchanges»
Grossartige Neuerungen im Bereich MergingCommunitymit Git beschäftigt«automagisch»ABER immer noch Probleme bei grossen refactorings
Grosse refactoringsManuelles mergen kostet ZeitUnd dabei spielt es keine Rolle klein/gross Geographisch verteiltGeschäft boomt neue AnforderungenRefactoring/Redesignam gleichen Verhalten arbeitenDirekt um die Ecke/vor der Tür
Gerade hierbei kommen verteilte Versionsverwaltungssysteme zum EinsatzDezentralisiertes Modell aufgebautStärken:Komplexe MergingoperationenZeitweise verbunden – evtl. sogar grösstenteils offlineMeist verbreitestesOpensource DVS: GitGit bietet AntwortenEintauchen Funktionalität Git und kommen dann darauf zurückTFS und Git kombinieren
Dani: «… Einblick in die Geschichte von Git geben? Dass wir wissen wo wir stehen?»
- Source Code Control System und Revision Control System- Einzige Datei versioniert, arbeiten mit Exklusiv Lock
- Concurrent Versioning System, Visual Source Safe, Subversion, Team Foundation Server und Perforce- Mehrere Dateien versionieren, zentralisiertes Modell- Auschecken beliebiger Version aus Repo- Wenig Restriktiv gegenüber gleichzeitigen Modifikation (jedoch Merge vor Commit)
- Git, Mercurial, Bazaar und Bitkeeper- Changeset und nicht Dateien, verteiltes Modell- Changesets können versandt werden, Clients und Server lokale History- Merge von Commit getrennt (Commit vor Merge)
DVCS mehrere Vorteile. Verschiedene Topologien genutzt werden nach Bedürfnis
Zentralisiertes ModellTypischerweise in Grossfirmen
Hierarchisches ModellVon Zeit zu Zeit periodisches MergenSubsystembasierte Repositories z.B. Linuxkernel Grafik, Audio…
Verteiltes ModellOft in Opensourcewelt (Codeplex, Github)Backups sehr einfach (volle History bei jedem Klon)Starkes Branching und MergingErleichtert arbeiten mit Featurebranches und immer unter VersionskontrolleAnalysen auf lokalen Repos
Linus TorvaldsBitkeeper keine Lizenzen mehr gratis Anbot für LinuxentwicklerPerl und C, start 2005Name git: (en: Blödmann, Depp)„I'm an egoisticalbastard, and I name all myprojects after myself. First Linux, nowgit.“– Linus Torvalds
Designgrundlagen: Geschwindigkeit, Einfachheit, Branching und Merging, Dezentralisierung und SkalierbarkeitAnfang vor allem Linuxkernelentwicklung, Crossplattform
Integrationsbrücken schlagen die Brücke von Git zu TFS in beide RichtungenGit-TF Microsoft August V1Anfang Nov. V2Codeplex kostenlosChocolatelyCloneConfigureCheckinFetchPullShelveShelvesetsUnshelveSupported: TFS 2008-2012
Was ist Git-TF?Set von KommandozeilentoolsTFS klonen zu GitÄnderungen lokal aus Git zu aktialisierenGenial was dies alles erlaubt!Moment … Wie sieht so eine Infrastruktur aus?
Zentralisiertes Modell von TFSwork-itemBuild und IntegrationsplattformKombiniert mit verteiltes Modell von Git!!Nochmal: zentrale Interationsplattform mit Management und Reportingfunktionalitätkombiniert offline problemlos zu arbeitenMergenlokale Branches«verteilter Manier»… lass es uns ..
Für den Ausdruck
TeamExplorer Everywhere Modell, Java Runtime, Auf allen PlattformenBefreie dein Entwicklungsprozess mit Git-TF und den mächtigen Eigenschaften von Team Foundation Server 2012 und fühle Dich nie mehr eingeschränkt!