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

Post on 05-Apr-2015

108 views 2 download

transcript

Arbeiten mit der neuen Versionsverwaltung im TFS

Neno LojeAIT TeamSystemPro Teamwww.teamsystempro.de

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

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?

Was bisher geschah…

Microsoft und Versionsverwaltungssysteme

Was bisher geschah…

Microsoft und Versionsverwaltungssysteme

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Visual Studio Team System

TFVC vorgestellt

Team Foundation Version Control (TFVC)

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

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

Was gehört alles in eine Versionsverwaltung?

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

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

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

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

Workspaces: Bildlich

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

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Einchecken

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

Das Einspielen erfolgt transaktionalMetadaten

KommentarBeliebige Anzahl an Eincheck-NotizenVerknüpfung zu Aufgaben

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!

TFVC-Vokabular

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

Check-In vs. Check-Out vs. Get

Visual Studio

Check-In (Upload)

Get (Download)

Check-Out

"Darf ich bitte schreiben?"

Team Foundation

Server

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

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

Locks: Bildlich

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

Eincheckrichtlinien(Check-In Policies)

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

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

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

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

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“

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

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

Hinweis zum Shelving in Kombination mit exklusiven Sperren

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

Team Foundation Version Control

Workspaces Changesets

Locks Policies

Shelves Branches

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)

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

Branches

v0.1 v1.0 V2.0

v1.0‘ v1.1

branch merge

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

Shared Components mit Branches

Gemeinsam genutzte KomponentenKomponenten-DLLs

Projekt AQuellcodeKomponenten-DLLs

Projekt BQuellcodeKomponenten-DLLs

ref

ref

branch

branch

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

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

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

Agenda

TFVC vorgestelltSCM-Konzepte im TFSZugriffsmöglichkeitenWeitere Themen

Verteiltes Arbeiten ohneVersion Control Proxy

SOAP Messages

SOAP Messages

SOAP Messages

File Transfers

File Transfers

File Transfers

Verteiltes Arbeiten mitVersion Control Proxy

SOAP Messages

SOAP Messages

SOAP Messages

File Uploads

File Uploads

File Uploads

Downloads

"Hundefütterung" bei Microsoft (2006)

"Hundefütterung" bei Microsoft (2007)

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)

Zusammenfassung

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

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

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.

per E-Mail an:neno@teamfoundationserver.de

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

www.teamsystempro.de

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

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

Save the date for tech·days next year!

7. – 8. April 2010Congress Center Basel

Classic Sponsoring Partners

Media Partner

Premium Sponsoring Partners