Konfigurationsmanagement



Ähnliche Dokumente
Versionsverwaltung mit SVN

Einführung in Subversion

Moodle aktuell halten mit Git

Kurzanleitung zu. von Daniel Jettka

Branching und Merging mit Visual Studio Team System

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

Deployment Deployment Seite 1 / 25

IT-Projekt-Management

Versionskontrolle mit Subversion

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

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

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

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

Lokale Installation von DotNetNuke 4 ohne IIS

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

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

SharePoint Demonstration

Grundlagen des Software Engineering

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

OP-LOG

Einfu hrung in Subversion mit TortoiseSVN

Praktikum Ingenieurinformatik (PI)

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Hex Datei mit Atmel Studio 6 erstellen

Software Engineering in der Praxis

teamsync Kurzanleitung

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

PCC Outlook Integration Installationsleitfaden

TFS Customzing. in der Praxis. Thomas Gugler. seit 2005 bei ANECON. .NET seit 2002 (happy bday!) Schwerpunkte: MCPD.Net 4.0, MCTS TFS, Scrum Master,

Workshop: Eigenes Image ohne VMware-Programme erstellen

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

ICS-Addin. Benutzerhandbuch. Version: 1.0

Git. Dezentrale Versionsverwaltung im Team Grundlagen und Workflows. Rene Preißel Björn Stachmann. 2., aktualisierte und erweiterte Auflage

PROJEKTVERZEICHNIS EINRICHTEN

Lizenzen auschecken. Was ist zu tun?

Support-Tipp Mai Release Management in Altium Designer

Apache Subversion (SVN)

Bedienungsanleitung für den Online-Shop

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

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

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Dokumentation zur Versendung der Statistik Daten

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

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

RIS Abbild mit aktuellen Updates

Wie benutzt man TortoiseSVN

Reporting Services und SharePoint 2010 Teil 1

Alexander Delater, Barbara Paech RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Insight aus der Webseite!

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

SICHERN DER FAVORITEN

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Software Qualität Übung 1

Versionsverwaltung für r Visual Studio.NET mit Subversion

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Erste Schritte mit Sharepoint 2013

ARCO Software - Anleitung zur Umstellung der MWSt

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

XPERT.NET REPORTING CLIENT INSTALLATION. Einrichten von Visual Studio 2005 und 2008 für die Reporting-Erstellung

Netzwerkeinstellungen unter Mac OS X

Erfolgreicher Ums9eg auf Git

Erstellen einer in OWA (Outlook Web App)

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Anleitungen zum Publizieren Ihrer Homepage

SharePoint Workspace 2010 Installieren & Konfigurieren

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

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

Anleitung über den Umgang mit Schildern

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Optimierung von Ausdrucken im SAP-Umfeld unter Einsatz von MS Office Funktionen

Inhaltserzeichnis. Datenübernahme

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Iterativ. Inkrementell

Projektmanagement in Outlook integriert

DocuWare unter Windows 7

GFAhnen Datensicherung und Datenaustausch

GITS Steckbriefe Tutorial

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

Versionsverwaltung mit Mercurial für Einsteiger

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Outlook Vorlagen/Templates

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

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

Was versteht man unter Softwaredokumentation?

I. Allgemeine Zugangsdaten für den neuen Server: II. Umstellung Ihres Windows Arbeitsplatzrechners

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

Microsoft Dynamics NAV 2013 R/2 Installationsanleitung. Inhalt: Begleitmaterial des ERP Übungsbuchs:

Datensicherung. Beschreibung der Datensicherung

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Verwendung des IDS Backup Systems unter Windows 2000

Transkript:

Konfigurationsmanagement Versionsverwaltung Oktober 2012, Robert Kolb

Themen Theorie Konfigurationsmanagement Versionierungsschema Varianten (Branches) Versionsverwaltung Praxis Konfigurationsmanagement am Beispiel - Subversion (TortoiseSVN), Git, TFS - TortoiseMerge / WinMerge 2

Lernziele Sie können die Begriffe Konfiguration, Baseline und Version erklären Sie haben mögliche Tools für die Versionsverwaltung kennen gelernt Sie haben WinMerge als mögliches Tool zur Zusammenführung von Versionen kennen gelernt 3

Configuration Management 4

Wozu Konfigurationsmanagement? Strukturierung des Änderungswesens Aufzeichnung der Entwicklungsgeschichte Überwachung der Änderungen und der Änderungsprozesse Fehlerkorrekturen und Festlegung der Auswirkungen auf einzelnen Versionen Überwachung der Arbeitsschritte in der Entwicklung und in der Produkte- Pflege 5

Konfigurationsmanagement gibt Antwort auf... (1) Welcher Kunde hat eine spezielle Version eines Produktes erhalten? Welche Hardware- und Systemsoftwarekonfiguration wird für eine geplante Produktversion benötigt? Wie viele Versionen des Produktes wurden erzeugt und wann? 6

Konfigurationsmanagement gibt Antwort auf... (2) Welche Versionen des Produktes sind betroffen, wenn eine spezielle Komponente geändert wird? Wie viele Änderungsanträge (Change Requests) oder Problem- Meldungen (Problem Reports) sind für eine spezielle Version noch unerledigt? Wie viele Fehlermeldungen liegen für eine spezielle Version vor? 7

Was ist eine Software-Konfiguration? Eine bekannte und freigegebene Menge von Software-Elementen (Entwicklungsdokumente, Software bis Hardware) zu einem bestimmten Produkte-Lebenszyklus. Konfiguration Dokumente SW-Elemente Werkzeuge - Projekt Dokumente - Spezifikationen - Design Dokumente - Test Dokumente - Manuals - etc. - Quellen-Elemente - Abgeleitete Elemente - Compiler, Linker, IDE - Betriebssystem(e) - Patches - Architekturen - Hardware - Libraries, SDKs, etc. 8

Was ist ein Software-Element? Jeder identifizierbare und maschinenlesbare Bestandteil eines entstehenden Produkts Eindeutige Bezeichnung (durch Version) Jede Änderung hat Einfluss auf die Bezeichnung 9

Klassifizierung der Software-Elemente Source-Code Ableitung mit Hilfe von Tool, z.b. Compiler Quellen- Element Abgeleitetes Element Source-Code Binary, Library etc. 10

Referenzkonfiguration (Baseline) Eine Referenzkonfiguration umfasst ein Zwischenergebnis zu einem bestimmten Zeitpunkt (in der Regel nach einem Meilenstein oder einer Phase) Anforderungskonfiguration Entwurfskonfiguration Produktkonfiguration Pflegekonfiguration Pflichtenheft OOA-Modell GUI-Modell Benutzerhandbuch + ODD-Modell + Source-Code + Object-Code + Binaries + geänderte Teile + neue Teile Definitionsphase Entwurfsphase Einführungsphase Wartungs- und Pflegephase Zeit 11

Version Management 12

Versionierungsschema für Produkte Produktversionen haben meist keinen direkten Zusammenhang mit der Versionierung im Source Code oder der Produktbezeichnung Beispiel Microsoft Visual Studio: Produkt Versionsnummer _MSC_VER Visual Studio 6.0 6 1200 Visual Studio.NET 2002 7 1300 Visual Studio.NET 2003 7.1 1310 Visual Studio 2005 8 1400 Visual Studio 2008 9 1500 Visual Studio 2010 10 1600 Visual Studio 2012 11 1700 _MSC_VER ist ein Makro zur Unterscheidung der Compilerversion im Source Code 13

Übliches Versionierungsschema Major Release Number 1. Minor Release Number X.1 Revision (Patch) Number Build Number X.Y[.0] X.Y[.Z[.n]] V 1.1.0 V 1.2.0 V 1.3.0 V 2.1.0 Version shipped shipped Release 1.2.0 http://en.wikipedia.org/wiki/software_versioning Release 2.1.0 14

Datei basierte History (z.b. Visual SourceSafe, CVS) Konventioneller, früher meist verwendeter Ansatz für Versionierung Jede Datei wird einzeln versioniert, d.h. nur eine Änderung an der Datei verändert ihre Versionsnummer (Revision) Grösster Nachteil: Zusammenhang der Dateiversionen untereinander fehlt 15

Bezeichnen von Versionen (Tagging, Labeling) Versuch, den grössten Nachteil von dateibasierter Histrory zu beheben. Beim Tagging werden verschiedene Dateien, welche zueinander im Kontext stehen, mit einer Bezeichnung (z.b. Release_1.0.1) versehen, damit sie in dieser Zusammenstellung (View) wieder aus dem Repository gelesen werden können. 16

Commit basierte History (z.b. Subversion, TFS, Git) Moderner Ansatz für Versionierung, berücksichtigt Kontext der Dateien. Eine Änderung am Repository (commit) verändert die globale Versionsnummer (Revision, Changeset), Dateien haben keine eigene Versionsnummer mehr. Pro Änderung können mehrere Dateien hinzugefügt, verändert oder gelöscht worden sein. Revision oder Changeset 17

Varianten (Branches oder Äste) Zeitlich nebeneinander liegende Ausprägungen von Software Elementen mit gleicher Basis Parallele Entwicklungslinien, nachträgliche Bug Fixes Unterschiedliche Implementierung derselben Schnittstelle Unterschied durch bedingte Übersetzung Ausgelegt auf unterschiedliche Systeme oder Hardware 18

Branching Strategie future B B next release B next service pack B next hotfix Quelle: http://vsarbranchingguide.codeplex.com/ 19

Release Branching Advanced (Microsoft) RI RI B FI B FI FI FI B B RI Emergency Hotfix B FI RI Delete old hotfixes Quelle: http://vsarbranchingguide.codeplex.com/ Delete old releases 20

Branches und Tags mit Subversion In Subversion besteht keine spezielle Funktion für Branching und Tagging. Anstelle dessen wird einfach eine Kopie des gewünschten Dateibaumes unter einem neuen Namen im Ordner "branches" bzw. "tags" angelegt. Hierbei wird jedoch kein Speicherplatz belegt. Gemäss Konvention werden danach die Dateibäume unter "tags" nicht mehr weiterverwendet, da sie nur als Markierungen dienen. Die Dateibäume unter "branches" werden hingegen weiterentwickelt und die darin vorgenommenen Änderungen fliessen meist wieder in die Hauptentwicklungslinie "trunk" zurück (Merging). Branches und Tags können problemlos gelöscht werden, wenn sie nicht mehr gebraucht werden. 21

Check out / Check in Processes Repository check out Working Copy (Sandbox) Code Code Repository Server Development Workstation modify Repository mod. Code check in Working Copy (Sandbox) mod. Code Repository Server Development Workstation 22

Version Control Model "Lock - Modify - Unlock" Locked check out Archiv (Repository) 1. check out (lock) V x.y Kopien File(s) gesperrt (locked) 2. modify 4. Version(en) des/der Files wird erhöht und abgespeichert 3. check in (unlock) Änderungen 23

Version Control Model "Copy - Modify - Merge" Concurrent check out Archiv (Repository) 1. check out (copy) V x.y Kopien Dateien nicht gesperrt 2. modify 4. Version des Repository wird erhöht und abgespeichert 3. commit (update / merge) Änderungen 24

Merge-Konflikte bei "Copy - Modify - Merge" Wenn mehrere Entwickler parallel an einem Projekt arbeiten, kann es vorkommen, dass Änderungen an der gleichen Datei vorgenommen werden. Sind diese Änderungen an der gleichen Stelle der Datei, so führt dies zu einem Merge-Konflikt für die anderen Entwickler, sobald der erste Entwickler seine Änderungen ins Repository eingecheckt hat. D.h. jeder andere Entwickler kann seine Änderungen erst dann ins Repository einchecken, wenn er seinen Merge-Konflikt gelöst hat. Der Merge-Konflikt muss manuell gelöst werden, da das Tool nicht selbst entscheiden kann, welche Änderung ins Repository übernommen werden soll. Um diesen Merge-Konflikt möglichst einfach zu lösen, werden entsprechende Hilfsmittel bereit gestellt (z.b. TortoiseMerge oder WinMerge). Problematisch sind binäre-dateien (z.b. Word), hier den Lock verwenden 25

Hilfsmittel für Bearbeitung von Merge-Konflikten Links: Änderungen der Anderen gegenüber der Ausgangsdatei Rechts: Meine Änderungen gegenüber der Ausgangsdatei Unten: Zusammengeführte Änderungen und noch nicht gelöste Merge-Konflikte 26

Repository Konzept lokal z.b. Subversion, TortoiseSVN, VSS 27

Repository Konzept zentral z.b. CVS, Subversion, TortoiseSVN, Perforce, TFS 28

Repository Konzept dezentral (distributed) z.b. Git, Mercurial 29

Wesentliche Unterschiede von Git zu anderen VCS Repository zu Projekt Git: 1:1 Subversion, TFS 1:n Grund: Datentransfer bei Git für initial clone möglichst gering halten. Commit, Check-In Git: 2 commit check-in, 1. lokal, 2. zum Master-Repository Subversion, TFS 1 commit check-in Branches erstellen Git: ohne Master-Repository möglich Subversion, TFS nur mit Verbindung zum Repository möglich 30

Wesentliche Unterschiede von TFS zu anderen VCS TFS ist mehr als ein Tool zur Versionsverwaltung wie Subversion oder Git, es enthält: Versionsverwaltung Build Engine (TFS-Builds) Workflow Engine für Entwicklungsprozesse (Issue Tracking, Work Items) Dokumentationsverwaltung (SharePoint) Reporting Integration mit Test-Automation Clients: Visual Studio, Team Explorer, Excel, Project, Office, Outlook, Web, Eclipse Backend für TFS ist der MS-SQL Server 31

Aufgaben für das Selbststudium Skript Basiswissen SW-PM, Kapitel 9 Anleitung zu TortoiseSVN durcharbeiten http://pmcm.frox.com/randd_8208_tortoisesvn.pdf oder Videos zu Git durcharbeiten: http://git-scm.com/documentation 32

Informations- und Bezugquellen Subversion http://subversion.apache.org/ TortoiseSVN http://tortoisesvn.net/ Git http://git-scm.com/ Git http://stefanimhoff.de/notiz/einstieg-in-git-als-versionskontrollsystem/ TFS http://www.microsoft.com/visualstudio/eng/products/visual-studio-team-foundation-server-express TFS Preview http://tfspreview.com/ Übersicht http://en.wikipedia.org/wiki/comparison_of_revision_control_software Subversion und Git sind Open Source und daher frei erhältlich. Für TFS gibt es die kostenlose Express-Version, welche die Arbeit für bis zu fünf Entwickler zulässt. 33

Fragen und Antworten 34