neno loje ait teamsystempro team download der folien und beispiele: download der folien und...
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)
"Hundefütterung" bei Microsoft (2008)
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:[email protected]
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