60
Arbeiten mit der neuen Versionsverwaltung im TFS Neno Loje AIT TeamSystemPro Team www.teamsystempro.de Download der Folien und Beispiele: http://teamsystempro.de/ v0179.aspx

Neno Loje AIT TeamSystemPro Team Download der Folien und Beispiele: Download der Folien und Beispiele:

Embed Size (px)

Citation preview

Page 1: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Arbeiten mit der neuen Versionsverwaltung im TFS

Neno LojeAIT TeamSystemPro Teamwww.teamsystempro.de

Download der Folien und Beispiele:http://teamsystempro.de/v0179.aspx

Page 2: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Wer sind Sie?

Sie…wollen weg von ihrem jetzigen System?

Performanz, weltweite Teams, Parallelarbeit

… haben bereits auf TFS gewechselt?… möchten sich informieren welche Vorteile ein Wechsel zum TFS für Sie hätte?

Page 3: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Was bisher geschah…

Microsoft und Versionsverwaltungssysteme

Page 4: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Was bisher geschah…

Microsoft und Versionsverwaltungssysteme

Page 5: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Page 6: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Page 7: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Visual Studio Team System

Page 8: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

TFVC vorgestellt

Team Foundation Version Control (TFVC)

… ist eine vollständige Neuentwicklung… wurde für große Teams, die auch weltweit verteilt arbeiten, optimiert

Page 9: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Was erwarten wir von einer Versionsverwaltung?

Die Aufbewahrung unseres "Master"-QuellcodesDie "Versionierung" des Quellcodes

d.h. den Mastercode zu einem bestimmten Punkt auf der Zeitachse (z.B. zu einem Build)Neben dem Mastercode mehrere Kopien

Page 10: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Was gehört alles in eine Versionsverwaltung?

Alles, was wir zum Bauen benötigen:Quellcode (C#, C++, VB6, Java, …)TestsInstallationsprogrammEndbenutzerdokumentationDatenbank-Schema…

Page 11: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Architektur der TFVC

Custom reportingtools

MS Excel

Team Foundation Data Tier

Version ControlProxy

Report Client

Team Foundation Client Tier

CoreData

VersionControlWork Items Team Build

Data

SQLReportingServices

WindowsSharePointServices

SQLReportingServices

WindowsSharePointServices

Work ItemTrackingService

VersionControlService

TeamBuild

Service

CoreServices

Warehouse

Adapters

Team Foundation App Tier

WSS Proxies

SQL RS Proxies

Team Foundation Object Model

MS ExcelPlug-In

MS ProjectPlug-In

Visual Studio Packages

Internet Explorer

BuildProcess

VersionControlProxy

Service

VSTFClients of VSTFVSTF Adjuncts

Build Machine

Page 12: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Page 13: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Page 14: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Page 15: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Workspaces

Lokaler "Sandkasten" (= clientseitige Kopie), in dem gearbeitet wird

Befehle auf dem Sandkasten werden immer erst lokal "gemerkt" (ausstehende Eincheckvorgänge)

Zuordnung zwischen lokalen Ordnern und Ordnern in der TFVC

$/ D:\Projekte\Workspaces gehören jeweils einem Benutzer und einem Computer

Page 16: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Workspaces: Bildlich

Page 17: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Workspaces: Empfehlungen

Empfehlung: Workspace von Hand anlegen!

VS legt automatisch einen Workspace anLokale Struktur auf Festplatte = TFS-Struktur

$/ProjektA D:\Projekte\ProjektA$/ProjektB D:\Projekte\ProjektB…

Man kann auch mehrere Workspaces auf einer Maschine einrichten

"Pending Changes" Fenster in VS zeigt jeweils nur Elemente aus einem Workspace an

Page 18: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Page 19: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Einchecken

Die Änderungen werden samt Metadaten als so genanntes "Changeset" übertragen

Das Einspielen erfolgt transaktionalMetadaten

KommentarBeliebige Anzahl an Eincheck-NotizenVerknüpfung zu Aufgaben

Page 20: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Verhalten vom Auschecken

Auschecken ist missverständlichAuschecken bedeutet:"Ich möchte die Datei eventuell bearbeiten"

TFVC macht die Dateiversion im Workspace schreibbar. Mehr nicht.

Um aktuellste Version zu bekommen muss vorher manuell Get (Latest) aufgerufen werden!

Page 21: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

TFVC-Vokabular

Check-In= UploadCheck-Out= "Darf ich schreiben?"Get= Download

Page 22: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Check-In vs. Check-Out vs. Get

Visual Studio

Check-In (Upload)

Get (Download)

Check-Out

"Darf ich bitte schreiben?"

Team Foundation

Server

Page 23: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Page 24: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Sperren

Zwei Extreme:Jeder soll alles gleichzeitig bearbeiten dürfen("Multiple Checkout")Es darf nur einer zur Zeit an etwas arbeiten("Exclusive Checkout")

Standardmäßig nutzt der TFS ersteresAn-/ausschaltbar pro ProjektPro Dateityp (für den gesamten TFS gültig)Bei jedem Checkout explizit sperrbar

Page 25: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Locks: Bildlich

Page 26: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Page 27: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Eincheckrichtlinien(Check-In Policies)

Pro Projekt vom Projektleiter einstellbarRichtlinien prüfen den Code lokal und entscheiden ob eingecheckt werden darfErweiterbar durch eigene Eincheckregeln

Page 28: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Policy Override

Eincheckrichtlinien sollen den Benutzer "erinnern", nicht etwas erzwingenBenutzer können das negative Ergebnis der Eincheckrichtlinien umgehen ("Override")Kann man diese Funktion abschalten?

Leider nein, aber sich benachrichtigen lassenEntweder sofort (per E-Mail) oder über Berichte

Page 29: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Fertig einsetzbare Eincheckrichtlinien

In VS 2008 eingebaute Richtlinien:Work Item PolicyCode AnalysisTest PolicyCI Build not failed PolicyCustom Path PolicyForbidden Patterns PolicyChangeset Comments PolicyWork Item Query Policy

Page 30: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Page 31: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Grundlagen: Shelving

Das Dilemma:Es soll täglich eingecheckt werden

Gründe: Datensicherung, mögl. Erkrankung, …

Der Code in der Versionsverwaltung soll von hoher Qualität sein und immer kompilieren

Gründe: Daily Build, Prüfen von Coderegeln, …

Die Lösung: „Shelves“

Page 32: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Shelving in Aktion

Ausgangsfrage: Habe ich "fertigen" Code?

Fertig = erfüllt die Unternehmensrichtlinien

Ja?Check-In: In die Versionsverwaltung eincheckenEincheckrichtlinien werden geprüftÄnderungen fließen in den Buildprozess mit ein

Nein?Shelve-In: In eigenen Shelve ablegenKeine Auswirkungen auf andere Benutzer

Page 33: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Einsatzmöglichkeiten für Shelving

Unfertige Arbeit sichernz.B. bei Unterbrechungen, Feierabend, etc.

Weitergabe von unfertiger ArbeitKollege ist Experte auf einem bestimmten Gebiet

Code ReviewFreiberufler sollen nicht direkt einchecken

Zwischenspeicherung (Checkpoints)Aktuellen Workspace-Arbeitsstand sichern

Wechsel zwischen parallelen Aufgaben

Page 34: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Hinweis zum Shelving in Kombination mit exklusiven Sperren

Beim "Unshelve" müssen alle in einem Shelve geänderten Dateien ausgecheckt werden können

Page 35: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Page 36: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Quellcodestruktur und Branching

Die Quellcodestruktur sowie die Branches (=Kopien) sind nicht in Stein gemeißelt und lassen sich jederzeit wieder umorganisieren, wenn es die Umstände erfordernBranches sind leichtgewichtig

Keine Performanzeinbußen bei vielen BranchesAber: Organisationsoverhead

Branches sind nur logische KopienWerden als Ordner dargestellt (und im lokalen Workspace auch physikalisch als Kopie angelegt)

Page 37: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Paralleles Arbeiten: Isolationsstufen

WorkspacesDaten lokal gespeichertFür 1 Computer und 1 Benutzer

ShelvesDaten auf dem Server gespeichertEs kann 1 Person zur Zeit dran arbeiten

BranchesDaten auf dem Server gespeichertMehrere Personen gleichzeitig

Page 38: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Branches

v0.1 v1.0 V2.0

v1.0‘ v1.1

branch merge

Page 39: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Wie viele Branches brauchtmein Projekt?

Branches… verursachen Aufwand… können auch nachträglich angelegt werden

Gründe für BranchesUnterstützung ausgelieferter VersionenIsolation von paralleler ArbeitExperimentelles Arbeiten

Page 40: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Shared Components mit Branches

Gemeinsam genutzte KomponentenKomponenten-DLLs

Projekt AQuellcodeKomponenten-DLLs

Projekt BQuellcodeKomponenten-DLLs

ref

ref

branch

branch

Page 41: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Page 42: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Zugriffsmöglichkeiten auf die TFVC

Windows: Team ExplorerTE und VS-Version müssen übereinstimmend.h. TE2005 für VS2005, auch bei TFS 2008

DOS-Feeling: KommandozeileWeb: Team System Web Access

Nur lesendAlte IDEs: VS6, VB6, etc. via MSSCCI-ProviderEclipse IDE, Linux, MacOS: Teamprise (€)Windows Explorer: Diverse Plug-Ins

Page 43: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

http://www.attrice.info/cm/tfs/

Nette HelferleinKostenfreies Werkzeug:

Workspace SidekickOberfläche zur komfortablen Administration von Workspaces

Status SidekickAnzeige aller anstehenden und erfolgten Vorgänge

History SidekickLabel SidekickShelve Sidekick

Page 44: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Page 45: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Verteiltes Arbeiten ohneVersion Control Proxy

SOAP Messages

SOAP Messages

SOAP Messages

File Transfers

File Transfers

File Transfers

Page 46: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Verteiltes Arbeiten mitVersion Control Proxy

SOAP Messages

SOAP Messages

SOAP Messages

File Uploads

File Uploads

File Uploads

Downloads

Page 47: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

"Hundefütterung" bei Microsoft (2006)

Page 48: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

"Hundefütterung" bei Microsoft (2007)

Page 50: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

TFS Dogfood Statistics – July 08Users

Recent users: 2,409 (up 451) Users with assigned work items: 4,293 (up 567) Version control users: 4,345 (up 525)

Version control Files/Folders: 312,965,192/75,535,960 (up 43,182,945/up 11,300,347) Total compressed file size: 2,607,236 MB (up 389,270 MB) Checkins: 484,546 (up 48,613) Shelvesets: 40,028 (up 8,611) Merge history: 756,402,342 (up 104,599,145)Pending changes: 39,586,207 (up 15,367,172) Workspaces: 11,415 (up 2,494) Local copies: 2,948,671,753 (was 2,214,366,807)

BuildsBuilds: 6,524 (up 369)

Work Items Work Items: 446,048 (up 33,117) Areas & Iterations: 10,536 (up 452) Work item versions: 3,713,236 (up 257,532) Attached files: 258,580 (up 14,454) Queries: 27,944 (up 2,291)

Commands (last 7 days) Work Item queries: 564,970 (up 106,437) Work Item updates: 29,854 (down 8,574) Work Item opens: 156,578 (down 56,465) Gets: 792,700 (up 470,385) Downloads: 52,063,240 (down 44,994,791)Checkins: 7,247 (up 515) Uploads: 159,837 (up 49,135) Shelves: 4,238 (up 1,134)

Page 51: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Zusammenfassung

Der TFS hat keine VSS-AltlastenPerformanz, verteiltes Arbeiten, neue IdeenEiniges ist anders, aber nichts unlösbarMan kann dem System vertrauen

Page 52: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Anders als in VSS

Änderungen erst lokal im Workspaceerst nach Check-In ist es für alle sichtbar

Check-Out holt nicht die neuste Version

einstellbar (ab TFS 2008)Links werden durch Branching abgebildet und haben nun einen expliziten SchrittStandardmäßig ist mehrfaches Auschecken erlaubt

Page 53: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Nächste Schritte

Ziehen Sie umMigration des Quellcodes

Starten Sie mit zwei BranchesTrennung vom ausgelieferter Version und in Entwicklung befindlichem Code… und erzeugen bei Bedarf zusätzliche Branches

Nutzen Sie "Shelves" für unfertige Arbeit

bei Feierabend, zur Weitergabe, etc.

Page 54: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

per E-Mail an:[email protected]

Download der Folien und Beispiele:http://teamsystempro.de/v0179.aspx

Page 55: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

www.teamsystempro.de

Page 56: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Your MSDN resourcescheck out these websites, blogs & more!

PresentationsTechDays: www.techdays.chMSDN Events: http://www.microsoft.com/switzerland/msdn/de/presentationfinder.mspxMSDN Webcasts: http://www.microsoft.com/switzerland/msdn/de/finder/default.mspx

MSDN EventsMSDN Events: http://www.microsoft.com/switzerland/msdn/de/events/default.mspxSave the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin

MSDN Flash (our by weekly newsletter)Subscribe: http://www.microsoft.com/switzerland/msdn/de/flash.mspx

MSDN Team BlogRSS: http://blogs.msdn.com/swiss_dpe_team/Default.aspx

Developer User Groups & CommunitiesMobile Devices: http://www.pocketpc.ch/Microsoft Solutions User Group Switzerland: www.msugs.ch.NET Managed User Group of Switzerland: www.dotmugs.chFoxPro User Group Switzerland: www.fugs.ch

Page 57: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Your TechNet resourcescheck out these websites, blogs & more!

PresentationsTechDays: www.techdays.ch

TechNet EventsTechNet Events: http://technet.microsoft.com/de-ch/bb291010.aspx Save the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin

TechNet Flash (our by weekly newsletter)Subscribe: http://technet.microsoft.com/de-ch/bb898852.aspx

Schweizer IT Professional und TechNet BlogRSS: http://blogs.technet.com/chitpro-de/

IT Professional User Groups & CommunitiesSwissITPro User Group: www.swissitpro.ch NT Anwendergruppe Schweiz: www.nt-ag.ch PASS (Professional Association for SQL Server): www.sqlpass.ch

Page 58: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Save the date for tech·days next year!

7. – 8. April 2010Congress Center Basel

Page 59: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele:

Classic Sponsoring Partners

Media Partner

Premium Sponsoring Partners

Page 60: Neno Loje AIT TeamSystemPro Team  Download der Folien und Beispiele:  Download der Folien und Beispiele: