600 likes | 749 Views
Download der Folien und Beispiele: http://teamsystempro.de/v0179.aspx . Arbeiten mit der neuen Versionsverwaltung im TFS. Neno Loje AIT TeamSystemPro Team www.teamsystempro.de. Wer sind Sie?. Sie …wollen weg von ihrem jetzigen System? Performanz, weltweite Teams, Parallelarbeit
E N D
Download der Folien und Beispiele: http://teamsystempro.de/v0179.aspx Arbeiten mit der neuen Versionsverwaltung im TFS Neno Loje AIT TeamSystemPro Team www.teamsystempro.de
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 vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen
Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen
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"-Quellcodes • Die "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, …) • Tests • Installationsprogramm • Endbenutzerdokumentation • Datenbank-Schema • …
Team Foundation Client Tier Version Control Proxy Build Machine Visual Studio Packages MS Project Plug-In Internet Explorer MS Excel Plug-In SQL RS Proxies WSS Proxies Team Foundation Object Model VSTF Clients of VSTF VSTF Adjuncts Report Client Custom reporting tools SQL Reporting Services Windows SharePoint Services Work Item Tracking Service Version Control Service Team Build Service Core Services Adapters MS Excel SQL Reporting Services Windows SharePoint Services Work Items Version Control Team Build Data Core Data Warehouse Team Foundation Data Tier Architektur der TFVC Version Control Proxy Service Build Process Team Foundation App Tier
Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere 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: Empfehlungen • Empfehlung: Workspace von Hand anlegen! • VS legt automatisch einen Workspace an • Lokale Struktur auf Festplatte = TFS-Struktur • $/ProjektA D:\Projekte\ProjektA • $/ProjektB D:\Projekte\ProjektB • … • Man kann auch mehrere Workspaces auf einer Maschine einrichten • "PendingChanges" 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 transaktional • Metadaten • Kommentar • Beliebige Anzahl an Eincheck-Notizen • Verknüpfung zu Aufgaben
Verhalten vom Auschecken • Auschecken ist missverständlich • Auschecken 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 = Upload • Check-Out = "Darf ich schreiben?" • Get = Download
Check-In vs. Check-Out vs. Get Get(Download) Team Foundation Server Visual Studio Check-Out "Darf ich bitte schreiben?" Check-In (Upload)
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("ExclusiveCheckout") • Standardmäßig nutzt der TFS ersteres • An-/ausschaltbar pro Projekt • Pro Dateityp (für den gesamten TFS gültig) • Bei jedem Checkout explizit sperrbar
Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches
Eincheckrichtlinien(Check-In Policies) • Pro Projekt vom Projektleiter einstellbar • Richtlinien prüfen den Code lokal und entscheiden ob eingecheckt werden darf • Erweiterbar durch eigene Eincheckregeln
Policy Override • Eincheckrichtlinien sollen den Benutzer "erinnern", nicht etwas erzwingen • Benutzer können das negative Ergebnis der Eincheckrichtlinien umgehen ("Override") • Kann man diese Funktion abschalten? • Leider nein, aber sich benachrichtigen lassen • Entweder sofort (per E-Mail) oder über Berichte
Fertig einsetzbare Eincheckrichtlinien • In VS 2008 eingebaute Richtlinien: • Work Item Policy • Code Analysis • Test Policy • CI Build not failedPolicy • Custom Path Policy • Forbidden Patterns Policy • Changeset Comments Policy • Work 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 einchecken • Eincheckrichtlinien werden geprüft • Änderungen fließen in den Buildprozess mit ein • Nein? • Shelve-In: In eigenen Shelve ablegen • Keine Auswirkungen auf andere Benutzer
Einsatzmöglichkeiten für Shelving • Unfertige Arbeit sichern • z.B. bei Unterbrechungen, Feierabend, etc. • Weitergabe von unfertiger Arbeit • Kollege ist Experte auf einem bestimmten Gebiet • Code Review • Freiberufler 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 erfordern • Branches sind leichtgewichtig • Keine Performanzeinbußen bei vielen Branches • Aber: Organisationsoverhead • Branches sind nur logische Kopien • Werden als Ordner dargestellt (und im lokalen Workspace auch physikalisch als Kopie angelegt)
Paralleles Arbeiten: Isolationsstufen • Workspaces • Daten lokal gespeichert • Für 1 Computer und 1 Benutzer • Shelves • Daten auf dem Server gespeichert • Es kann 1 Person zur Zeit dran arbeiten • Branches • Daten auf dem Server gespeichert • Mehrere Personen gleichzeitig
Branches v1.0‘ v1.1 branch merge v0.1 v1.0 V2.0
Wie viele Branches brauchtmein Projekt? • Branches • … verursachen Aufwand • … können auch nachträglich angelegt werden • Gründe für Branches • Unterstützung ausgelieferter Versionen • Isolation von paralleler Arbeit • Experimentelles Arbeiten
Shared Components mit Branches • Gemeinsam genutzte Komponenten • Komponenten-DLLs • Projekt A • Quellcode • Komponenten-DLLs • Projekt B • Quellcode • Komponenten-DLLs branch ref branch ref
Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen
Zugriffsmöglichkeiten auf die TFVC • Windows: Team Explorer • TE und VS-Version müssen übereinstimmend.h. TE2005 für VS2005, auch bei TFS 2008 • DOS-Feeling: Kommandozeile • Web: Team System Web Access • Nur lesend • Alte IDEs: VS6, VB6, etc. via MSSCCI-Provider • Eclipse IDE, Linux, MacOS: Teamprise (€) • Windows Explorer: Diverse Plug-Ins
http://www.attrice.info/cm/tfs/ Nette Helferlein Kostenfreies Werkzeug: • Workspace SidekickOberfläche zur komfortablen Administration von Workspaces • Status SidekickAnzeige aller anstehenden und erfolgten Vorgänge • HistorySidekick • Label Sidekick • ShelveSidekick
Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen
Verteiltes Arbeiten ohneVersion Control Proxy SOAP Messages File Transfers SOAP Messages File Transfers SOAP Messages File Transfers
Verteiltes Arbeiten mitVersion Control Proxy SOAP Messages File Uploads SOAP Messages Downloads File Uploads SOAP Messages File Uploads
Users 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) Builds Builds: 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) TFS Dogfood Statistics – July 08