Dr. Holger Schwichtenberg Softwarearchitekt Berater Dozent Fachjournalist

Ähnliche Dokumente
Versionsverwaltung für r Visual Studio.NET mit Subversion

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Versionskontrolle mit Subversion

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Versionsmanagement mit Subversion

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, , Berlin

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Versionskontrollsysteme. Uwe Berger & Markus Dahms <bralug@bralug.de>

Software Engineering in der Praxis

Versionsverwaltung mit SVN

Kurzanleitung zu. von Daniel Jettka

Einführung in Subversion

Moodle aktuell halten mit Git

Praktikum Ingenieurinformatik (PI)

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

Sourcecodeverwaltung

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

Konfiguration Management System. Konfiguration Management System. Versionierung Parallele Entwicklung Workspace

Versionskontrolle. Verteilte Versionskontrollsysteme. Richard Madsack. 25. November Versionskontrolle. Richard Madsack.

Einführung in Subversion. Tutorium SWP

Versionsmanagement mit Subversion

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Framework zur Unterstützung von Unit-Tests

IT-Projekt-Management

Wie benutzt man TortoiseSVN

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Einfu hrung in Subversion mit TortoiseSVN

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Versionskontrollsysteme

Step by Step Webserver unter Windows Server von Christian Bartl

Iterativ. Inkrementell

Branching und Merging mit Visual Studio Team System

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Versionsverwaltung mit git. Christoph Knabe FB VI

Entwicklungswerkzeuge

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

Versionsmanagement. Dipl.-Chem. Rainer Orth Technische Fakultät.

Quellcodeverwaltung mit SubVersion

Git in großen Projekten

Sichern der persönlichen Daten auf einem Windows Computer

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Medieninformatik Praktikum. Jens Rademacher

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

TeamViewer App für Outlook Dokumentation

Subversion. 17. Oktober Subversion. Norbert Perk. Warum Versionsverwaltung? Wie funktioniert. Was ist Subversion? Subversion- Server.

Konfigurationsmanagement mit Subversion, Ant und Maven

Die Integration von Requirements Management, Software Configuration Management und Change Management mit der MKS Integrity Suite 2006

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

CVS-Einführung. Sebastian Mancke,

SAP NetWeaver Gateway. 2013

Datensicherung und Wiederherstellung

Programmierung im Grossen. Vorlesung 22: Konfigrationsmanagement. Themenübersicht. Bertrand Meyer. Bernd Schoeller

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

PROJEKTVERZEICHNIS EINRICHTEN

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Proseminar Unix-Tools CVS Daniel Weber & Zhen Zhang Betreuer: Volker Baier

Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV. NAVObjectEditor RECY CLE

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einführung in Git. Dirk Deimeke. 19. August My own IT. ddeimeke (My own IT) Einführung in Git 19. August / 23

Lokale Installation von DotNetNuke 4 ohne IIS

Werkzeuge für das Softwarekonfigurationsmanagement

Windows Server 2012 R2 Essentials & Hyper-V

Einreichung zum Call for Papers

HSR git und subversion HowTo

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Erfolgreicher Ums9eg auf Git

Outlook Vorlagen/Templates

Windows 10 > Fragen über Fragen

Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert.

Lizenzen auschecken. Was ist zu tun?


Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Deployment Deployment Seite 1 / 25

Team- Entwicklung unter Eclipse

Formular»Fragenkatalog BIM-Server«

OUTLOOK-DATEN SICHERN

System-Update Addendum

Eine Anwendung mit InstantRails 1.7

Softwaretechnik (Allgemeine Informatik) Überblick

peer-to-peer Dateisystem Synchronisation

SharePoint Demonstration

4D Server v12 64-bit Version BETA VERSION

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

Tools are a IT-Pro's Best Friend Diverse Tools, die Ihnen helfen zu verstehen, was auf dem System passiert oder das Leben sonst erleichtern.

Übung: Verwendung von Java-Threads

:: Anleitung Hosting Server 1cloud.ch ::

Subversion. Einstieg in die. Versionskontrolle

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Die Projek*ools. Files, Git, Tickets & Time

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Konfigurationsmanagement mit Subversion, Maven und Redmine

EIDAMO Webshop-Lösung - White Paper

Transkript:

Varianten und Versionen verwalten in.net-anwendungen Softwarearchitekt Berater Dozent Fachjournalist Version 1.2 / 22.01.2007 Dr. rer. pol. Diplom-Wirtschaftsinformatiker MVP,.NET Code Wise Member, MCSD seit 1996 Softwareentwicklung mit Windows COM/.NET Heute: Firma www.it-visions.de (Sitz: Essen) 50%: Architektur, Design, Entwicklung (.NET!) 50%: Beratung, Schulungen, Coaching, Fachartikel, Fachbücher, Konferenzvorträge Fachjournalist ix, DOTNETpro, Computer Zeitung, Windows IT Pro, OBJEKTSpektrum, PC Magazin, MSDN Online, u.a. Buchautor Addison-Wesley, Microsoft Press, WEKA Media Vortragender nationale und internationale Fachkonferenzen (TechEd, OOP, ADC, BASTA, IT Forum, STC, WI, Net.Object Days, etc.) Kontakt Community Website http://www.dotnetframework.de Weblog http://www.dotnet-doktor.de Seite 2 1

Vortrags-FAQ Folienpräsentation? Live-Vorführungen? Download der Präsentation? Download der Beispiele? Zwischenfragen? Zeit für Fragen am Ende? Fragen, die mir erst später einfallen? Schulung, Beratung, Support Ja Ja http://www.it-visions.de/v4544.aspx Keine Beispiele, die sich zum Download lohnen würden Bitte nicht, wenn möglich Ja! http://www.it-visions.de/foren oder http://www.it-visions.de/produkte Seite 3 Inhalt Was ist Versionsverwaltung? Konzepte der Versionsverwaltung Versionsverwaltungswerkzeuge Subversion Team Foundation Version Control Ziele: Überzeugen, Versionsverwaltung einzusetzen Kriterien für Werkzeugentscheidung Ihnen helfen, die eigene Strategie zu validieren Seite 4 2

Eine kleine Geschichte Es war einmal ein einzelner Softwareentwickler Der war mit seiner Software Q&D (Quick&Dirty) sehr erfolgreich. Jeden Abend erstellte er ein auf einem von sieben Magnetbändern ein rollierendes Backup seiner Sourcen Als er schon längst an Version 3.0 arbeitete, rief ein Kunden, der Version 1.0 verwendete: Er hatte einen Fehler gefunden. Der Entwickler hatte aber den Quellcode von Version 1.0 nicht mehr und musste daher auf Version 2.0 aktualisieren. Seite 5 Wer sind Sie? Nutzen Sie Versionsverwaltung? O Ja, seit 2 oder mehr Jahren Jahren O Ja, seit weniger als 2 Jahren O Nein, noch nicht Seite 6 3

Versionsverwaltung Versionsverwaltungssystem Version Control System - VCS Seite 8 Variantenverwaltung Seite 9 4

Ziele der Versionsverwaltung Sicherstellen der Verfügbarkeit der Dateien Gewährleisten der Integrität, insbesondere bei gleichzeitiger Nutzung Verhinderung unberechtigter Zugriffe Sicherstellen der Nachvollziehbarkeit Seite 10 Geschichte der ("freien") Versionsverwaltung Anfang der 70er: Marc Rochkind, AT&T: Source Code Control System (SCCS) 1985: Walter Tichy, Purdue University: Revision Control System (RCS) 1986: Dick Grune: Concurrent Versions System (CVS) auf Basis von Shell- Skripten 1989: Jeff Polk und Brian Berliner: Concurrent Versions System (CVS) in C 2000-2004: Karl Fogel, CollabNet: Subversion Seite 11 5

Konzepte (auch: Kriterien für die Auswahl von Versionsverwaltungssystemen) Konzepte (1) Versionsverfolgung (Archivierung, Wiederherstellen) Repository vs. Arbeitskopie Check-Out / Check-In (Commit) Exportieren Revisionsnummern (lokal global) Geschichte (History) Dateiebene Zeilenebene Vergleichen der Versionen (Diff-Tool) Kommentieren der Versionen Attributieren (Metadaten) Seite 13 6

Konzepte (2) Paralleles Arbeiten Koordinierung des gemeinsamen Zugriffs Sperren (Lock Modify Write LMW ) aka. Pessimistischer Checkout Mischen (Copy Modify Merge - CMM) aka. Optimistischer Checkout Mischen: Keine gegenseitige Behinderung Konflikte können auftreten (nur zum Teil automatische Lösung) Sperren Keine Konflikte zu lösen Aber möglicherweise Behinderung Seite 14 Merging Seite 15 7

Konzepte (3) Konfigurationselemente Was kann man unter Versionsverwaltung stellen? Nur nicht Quellcode, beliebige Dateien Einzelne Dateien oder ganze Verzeichnisse Was sollte man unter Versionsverwaltung? Quellcode inkl. Tests Anforderungsdokumente, Buildskripte, Schnittstellenverträge, Was könnte man unter Versionsverwaltung stellen? Generierte Dokumentation Andere Artefakte, die aus dem Code gewonnen werden können Werkzeuge, Bibliotheken Was sollte man nicht unter Versionsverwaltung stellen? Kompilate Was macht Probleme? Entwicklertools, die binären Dateien/Datenbanken häufig ändern (z.b. Datenbanken von Codegeneratoren) Seite 16 Konzepte (4) Markierungen und Verzweigen Wichtige Punkte Tags/Labels Baseline Release Branching (Verzweigen) für Varianten/Produktversionen Experimentelle Entwicklungen Bugfixing Seite 17 8

Tagging und Baselines Quelle: G. Popp: Konfigurationsmanagement, S. 41 Seite 18 Branching Seite 20 9

Konzepte (5) Zentrale vs. Verteilte Versionsverwaltung Shelving Zugang zum Repository Online / Offline arbeiten Protokoll Zentrale Versionsverwaltung: Ein Repository n Arbeitskopien Verteilte Versionsverwaltung Jeder Entwickler hat sein eigenes Repository Ein priviligertes Master-Repository "Remote Repository Replication" "Propagating Changes to Parent Repositories" Seite 21 Konzepte (6) Nachverfolgbarkeit Verbindung mit Aufgaben, Bugreports und Builds Eincheckrichtlinien Genehmigung, z.b. Anforderungen des Sarbanes- Oxley-Act (SOX) Berechtigungen (Zugriffsrechte) Change Sets / Transaktionen Effizientes Speichern der Versionen Deltaalgorithmen nur Unterschiede, um Plattenplatz zu sparen Rückwärts vs. Vorwärtsdelta Kopieren oder Verlinken Kompression Seite 22 10

Herausforderungen Versionsgeschichte erhalten beim Umbenennen Bewegen Kopieren Seite 23 Typische Operationen für Nutzer von Versionsverwaltungsystemen Externe Dateien einspielen (Import) Dateien auschecken Letzte Version Bestimmte Version Dateien sperren / entspreen Änderungen einchecken Änderungen rückgängig machen Dateioperationen: Löschen, Bewegen, Hinzufügen Aktualisierungen abrufen / Dateien zusammenfügen Dateien vergleichen Änderungskonflikte lösen Versionsgeschichte anzeigen Metadaten setzen Seite 26 11

Der CheckIn-Vorgang Falsch: Ändern Kompilieren Einchecken Besser: Ändern Kompilieren Testen Einchecken Richtig: Ändern Kompilieren Testen Aktualisieren Konflikte lösen Kompilieren Testen Aktualisieren Einchecken Seite 27 Ergänzende Konzepte Anforderungsmanagement Statische Codeanalyse Modultests (Unit Tests) Übersetzungsmanagement (Build Management) Continous Integration Fehlermanagement (Bugtracking) Seite 28 12

Was lernen wir? Ohne Versionsverwaltung geht es nicht Mit Versionsverwaltung viele Punkte zu beachten Versionsverwaltung erledigt sich nicht nebenbei Zeit in Projektplan einplanen, um Projekt zu konfigurieren und Versionsverwaltungssystem zu warten Seite 30 Werkzeuge 13

Werkzeuge (Beispiele) Open Source CVS Architekturunterschiede: Subversion Client-Server (z.b. Perfore, Subversion) OpenCM Arch Filesharing (z.b. Subversion oder VSS) Monotone Superversion Git (Linux Torvalds) Kommerziell Perforce BitKeeper CMSynergy IBM Rational ClearCase Borland Starteam Serena Version Manager Microsoft Visual SourceSafe (VSS) Microsoft Team Foundation Version Control (TFVC) Seite 32 Visual SourceSafe Seite 33 14

Source Code Control API (SCC) Schnittstelle für Versionsverwaltung Definiert von Microsoft Server VSS TFVC Andere Hersteller auch für Unix und Mac Clients Visual Studio Borland Macromedia Diverse Editoren (PrimalScript, Slick Edit, etc.) Seite 34 Subversion (SVN) Quellcodeversionsverwaltungssystem Open Source / Nachfolger von CVS Funktionen: Windows, Linux, Unix, Mac Zugriff lokal, über TCP (3690) oder HTTP (Apache) Datenbanksystem Berkeley DB oder fsfs Platzsparende Verwaltung von Binärdaten Zahlreiche Clients (Windows Explorer, VS, Eclipse, Emacs, ) Atomare Check-Ins Vergleich: Subversion vs. MS VSS vs. Perforce siehe ix 9/2004! Seite 35 15

Subversion-Clients Svn.eve Kommandozeilenclient (svn.exe) TortoiseSVN (http://tortoisesvn.tigris.org/) Client für Windows Explorer Integration mit "beliebigen" Bug/Issue Tracking System AnkhSVN: Client für Visual Studio (http://ankhsvn.tigris.org/) Einchecken/Auschecken Exportieren eines Projekts nach SVN Integration eines bereits unter SVN-Verwaltung stehenden Verzeichnisses in VS Visual SVN Basiert auf Tortoise SVN $49 Seite 36 svn.exe Quelle: G. Popp: Konfigurationsmanagement, S. 103 Seite 37 16

Tortoise SVN Seite 38 AnkhSVN Seite 39 17

Schritte DEMO Anlegen eines SVN-Repositories Starten des SVN-Servers Starten des SVN-Servers als Windows- Systemdienst Festlegen der Exclude-Pattern Import der Basis-Verzeichnisstruktur Auschecken Hineinkopieren vorhandener Dateien Einchecken! Ändern Kompilieren Aktualisieren Konflikte lösen Kompilieren Aktualisieren Einchecken Seite 40 CruiseControl.NET (CCNet) Integration als Teil der täglichen Aktivitäten wenigstens einmal am Tag CruiseControl.NET Server = Automated Integration Server Überwachen des Quellcodeverwaltungssystems Kompilieren der Anwendungen Benachrichtigung der Entwickler über den Erfolg (EMail oder CCTray) Hersteller: ThoughtWorks, Open Source Version 2.5 http://sourceforge.net/projects/ccnet/ http://confluence.public.thoughtworks.org/display/ccnet/ Seite 41 18

CruiseControl.NET (CCNet) Seite 42 Integrierbare Werkzeuge Quellcodeverwaltung CVS Subversion VSS Perforce Rational ClearCase SoureGead Vault PVCS StarTeam MKS Source Integriry Telelogic Synergy Build NAnt VSNET MSBuild Test NUnit MSTest FxCop NCover Vil Simian MBUnit Seite 43 19

Trigger Trigger bestimmen, wann CCNet einen neuen Integrationszyklus startet Interval Trigger (alle x Sekunden, Standard: 60) Schedule Trigger (Wochentag, Uhrzeit) Filter Trigger (verhindern zu bestimmten Zeiten) Project Trigger (ein anderes Projekt wurde erfolgreich erzeugt) URL Trigger (wenn eine Webseite sich geändert hat, reduziert Last für Quellcodeverwaltungssysteme, die automatisch Websites erzeugen können) Seite 44 Server ccnet.exe (optional als Windows Dienst) Anwendungskonfigurationsdatei ccnet.config Seite 45 20

CCTray Seite 46 Web Dashboard Seite 47 21

Quelle:Microsoft Visual Studio 2005 Team System Process and Architecture Guidance Visual Studio Team Architect Application Modeling Logical Infra. Modeling Deployment Modeling Class Modeling Visio and UML Modeling Visual Studio Team Developer Dynamic Code Analyzer Static Code Analyzer Code Profiler Team Foundation Client VS Pro Unit Testing Code Coverage Visual Studio Team Test Load Testing Manual Testing Test Case Management Visual Studio Industry Partners Visual Studio Team Foundation Change Management Work Item Tracking Reporting Project Site Integration Services Project Management Seite 49 Team Foundation Version Control (TFVC) Nicht zu verwechseln mit Visual Source Safe (VSS) Teil des Team Foundation Server TFVC ist eine komplette Neuentwicklung VSS: "bis zu 5 Benutzer" TFVC: "5 bis 500 Benutzer" Migration von VSS wird unterstützt Werkzeuge Visual Studio Kommandozeilenwerkzeug tf.exe Team Foundation Object Model Source Control API Interessante Funktionen: Shelving Eincheckrichtlinien Nachverfolgbarkeit (Verbindung mit Aufgaben und Bugreports) Seite 50 22

TFVC Seite 51 Bücher Seite 52 23

Links & Artikel H. Schwichtenberg, M. Weidner: Geschichtsschreiber - Versionsverwaltungssysteme im Vergleich, ix 9/2004 Liste von Werkzeugen http://de.wikipedia.org/wiki/liste_der_versionsverwaltungsprogra mme Subversion http://subversion.tigris.org/ Team Foundation Server http://www.microsoft.com/germany/msdn/vstudio/products/team system/team/default.mspx Version Control System Comparison http://better-scm.berlios.de/comparison/comparison.html Subversion vs. Clearcase http://www.pti.co.il/clearcase_vs_subversion.html Seite 53 Fragen? Seite 54 24

Brauchen Sie Unterstützung bei.net/asp.net? Beratung bei Einführung, Migration und Betrieb (Vor-Ort-)Schulungen, Workshops Coaching (Vor-Ort Telefon E-Mail Online-Meeting) Support (Vor-Ort Telefon E-Mail Online-Meeting) Entwicklung von Prototypen und Lösung http://www.it-visions.de/produkte Telefon 0201/7490700 Seite 55 25