1 / 60

Arbeiten mit der neuen Versionsverwaltung im TFS

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

marnina
Download Presentation

Arbeiten mit der neuen Versionsverwaltung im TFS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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?

  3. Was bisher geschah… • Microsoft und Versionsverwaltungssysteme

  4. Was bisher geschah… • Microsoft und Versionsverwaltungssysteme

  5. Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen

  6. Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen

  7. Visual Studio Team System

  8. TFVC vorgestellt • Team Foundation Version Control (TFVC) • … ist eine vollständige Neuentwicklung • … wurde für große Teams, die auch weltweit verteilt arbeiten, optimiert

  9. 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

  10. Was gehört alles in eine Versionsverwaltung? • Alles, was wir zum Bauen benötigen: • Quellcode (C#, C++, VB6, Java, …) • Tests • Installationsprogramm • Endbenutzerdokumentation • Datenbank-Schema • …

  11. 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

  12. Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen

  13. Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches

  14. Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches

  15. 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

  16. Workspaces: Bildlich

  17. 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

  18. Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches

  19. 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

  20. 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!

  21. TFVC-Vokabular • Check-In = Upload • Check-Out = "Darf ich schreiben?" • Get = Download

  22. Check-In vs. Check-Out vs. Get Get(Download) Team Foundation Server Visual Studio Check-Out "Darf ich bitte schreiben?" Check-In (Upload)

  23. Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches

  24. 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

  25. Locks: Bildlich

  26. Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches

  27. 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

  28. 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

  29. 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

  30. Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches

  31. 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“

  32. 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

  33. 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

  34. Hinweis zum Shelving in Kombination mit exklusiven Sperren • Beim "Unshelve" müssen alle in einem Shelve geänderten Dateien ausgecheckt werden können

  35. Team Foundation Version Control Workspaces Changesets Locks Policies Shelves Branches

  36. 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)

  37. 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

  38. Branches v1.0‘ v1.1 branch merge v0.1 v1.0 V2.0

  39. 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

  40. Shared Components mit Branches • Gemeinsam genutzte Komponenten • Komponenten-DLLs • Projekt A • Quellcode • Komponenten-DLLs • Projekt B • Quellcode • Komponenten-DLLs branch ref branch ref

  41. Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen

  42. 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

  43. 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

  44. Agenda • TFVC vorgestellt • SCM-Konzepte im TFS • Zugriffsmöglichkeiten • Weitere Themen

  45. Verteiltes Arbeiten ohneVersion Control Proxy SOAP Messages File Transfers SOAP Messages File Transfers SOAP Messages File Transfers

  46. Verteiltes Arbeiten mitVersion Control Proxy SOAP Messages File Uploads SOAP Messages Downloads File Uploads SOAP Messages File Uploads

  47. "Hundefütterung" bei Microsoft (2006)

  48. "Hundefütterung" bei Microsoft (2007)

  49. "Hundefütterung" bei Microsoft (2008)

  50. 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

More Related