Software Engineering in der Praxis



Ähnliche Dokumente
Software Engineering in der Praxis

Einführung in Subversion

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

Sourcecodeverwaltung

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Einfu hrung in Subversion mit TortoiseSVN

Einführung in Subversion. Tutorium SWP

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

Versionsverwaltung mit Mercurial für Einsteiger

CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS

Kurzanleitung zu. von Daniel Jettka

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

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

8. Dokumentenverwaltung mit CVS eine Einführung

Moodle aktuell halten mit Git

Versionsverwaltung mit SVN

Praktikum Ingenieurinformatik (PI)

Versionskontrolle mit Subversion

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

Print2CAD 2017, 8th Generation. Netzwerkversionen

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Team- Entwicklung unter Eclipse

Wie benutzt man TortoiseSVN

Benutzerhandbuch - Elterliche Kontrolle

Deployment Deployment Seite 1 / 25

Handbuch. TMBackup R3

Subversion und Trac. Michael Trunner. 23. Januar Fachschaft Informatik und Softwaretechnik Universität Stuttgart

Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

IT-Projekt-Management

Workflows verwalten. Tipps & Tricks

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

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

FTP-Server einrichten mit automatischem Datenupload für

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

Österreichische Trachtenjugend

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

PROJEKTVERZEICHNIS EINRICHTEN

Arbeitsgruppen innerhalb der Website FINSOZ e.v.

Elexis-BlueEvidence-Connector

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Synchronisations- Assistent

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

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

ecaros2 - Accountmanager

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

Backend

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

HSR git und subversion HowTo

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

Subversion. Einstieg in die. Versionskontrolle

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Computerstammtisch Tegernau, Tutorial Grundlagen, Dateioperationen, Datensicherung (Screenshots und Erläuterungen beziehen sich auf Windows 7)

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

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

dpa-infocom - Datenlieferung

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

CVS-Einführung. Sebastian Mancke,

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

Installationsbeschreibung Flottenmanager 7.1

Installation OMNIKEY 3121 USB

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Dokumentenverwaltung

Netzwerkversion PVG.view

Anleitung über den Umgang mit Schildern

Internet online Update (Mozilla Firefox)

egovernment für das Open Source CMS Contao

> Soft.ZIV. Maple Mathematisches Software System

Schuljahreswechsel im Schul-Webportal

Parks > Authorization Manager. Versionshinweise

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Bkvadmin2000 Peter Kirischitz

Nutritioner V2.0: Lokaler, Synchronisations- und Servermodus

Easy Share Anleitung. April 2016

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Easy Share Anleitung Februar 2014

Sichern auf den zentralen TSM-Servern unter Windows. Sichern auf den zentralen TSM-Servern unter Windows

Windows Explorer Das unbekannte Tool. Compi-Treff vom 19. September 2014 Thomas Sigg

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Statuten in leichter Sprache

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Tipps zum Bearbeiten einer digitalen Schultasche Stand:

B12-TOUCH VERSION 3.5

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

BILDARCH LAN. 1 Einleitung. 2 Installation Übersicht. Server

Apache Subversion (SVN)

Dateimanagement in Moodle Eine Schritt-für

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

RetSoft Archiv Expert - Admin

Konfiguration des Novell GroupWise Connectors

Transkript:

Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 1 / 30

Versionskontrolle Matthias Meitner Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 2 / 30

1 Inhalt 2 Versionskontrolle Einführung Paradigmen der Versionskontrolle 3 Subversion Einführung Architektur Subversion auf der Serverseite einrichten Subversion auf der Clientseite Die Versionsverwaltung von Subversion Konflikte Projekt-Branching 4 Literatur Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 3 / 30

Was ist Versionskonstrolle? System zur: Kontrolle von gleichzeitigem Zugriff auf gemeinsam genutzte Dateien eines Projektes Verwaltung verschiedener Projekt-Versionen Verwaltung von Projekt-Aufspaltungen (Forks) Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 4 / 30

Zwei Paradigmen Lock-Modify-Unlock Copy-Modify-Merge Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 5 / 30

Das Lock-Modify-Unlock-Paradigma Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 6 / 30

Das Lock-Modify-Unlock-Paradigma Probleme Gleichzeitiges Arbeiten an der gleichen Datei ist nicht möglich. Ein Benutzer kann die Arbeit am ganzen Projekt blockieren, wenn er die von ihm gesperrte Datei nicht mehr frei gibt. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 7 / 30

Das Copy-Modify-Merge-Paradigma Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 8 / 30

Das Copy-Modify-Merge-Paradigma Probleme Es wird vorausgesetzt, dass das Zusammenführen von Änderungen an einer Datei einen»gültigen«dateiinhalt ergibt. Das gilt meistens nur für Textdateien. Änderungen an der gleichen Datei können sich überlappen. Konfliktsituation Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 9 / 30

Subversion Copy-Modify-Merge-System Unterstützt auch Sperren von Dateien Open Source Als vollwertiger Ersatz für CVS gedacht Abkürzung: SVN http://subversion.tigris.org/ Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 10 / 30

Subversion-Architektur Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 11 / 30

Subversion auf der Serverseite einrichten 1 Repository anlegen: svnadmin create Repository-Pfad 2 Server starten. Zwei Möglichkeiten: Apache mit entsprechenden Modulen starten svnserve starten Im Praktikum verwenden wir svnserve. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 12 / 30

Svnserve Starten mit svnserve -d -r Repo-Pfad Konfigurierbar über Repo-Pfad/conf/svnserve.conf: [general] password-db = userfile realm = repository name # Specific access rules authz-db = authzfile Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 13 / 30

Svnserve Userfile Definiert Benutzernamen und Passwörter für den Zugriff auf das Repository: [users] harry = foopassword sally = barpassword Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 14 / 30

Svnserve Authzfile Definiert Benutzerrechte für den Zugriff auf das Repository: [groups] calc-developers = harry, sally, joe paint-developers = frank, sally, jane allusers = @calc-developers, @paint-developers [/projects/calc] @calc-developers = rw jane = r [/projects/paint] @paint-developers = rw jane = r Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 15 / 30

Subversion auf der Clientseite Die wichtigsten Operationen Neues Projekt ins Repository aufnehmen: svn import PfadZumProjekt svn://servername/pfad Projekt aus dem Repository kopieren: svn checkout svn://servername/pfad LokalerPfad Der Inhalt von svn://servername/pfad wird nach LokalerPfad kopiert. Lokale Änderungen ins Repository übertragen: svn commit -m "Beschreibung der Änderungen" Lokale Kopie (Working Copy) auf Repository-Version (HEAD-Version) aktualisieren: svn update Alte Änderungen rückgängig machen: svn merge -r 303:302 svn://svn.example.com/repos/calc/trunk Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 16 / 30

Änderungen an der Working Copy vornehmen Vorhandene Dateien oder Verzeichnisse ins Versionierungs- System aufnehmen: svn add Pfad Dateien oder Verzeichnisse löschen: svn delete Pfad Dateien oder Verzeichnisse kopieren: svn copy Quelle Ziel Dateien oder Verzeichnisse verschieben: svn move Quelle Ziel Änderungen widerrufen: svn revert Pfad Die Änderungen werden erst nach svn commit im Repository widergespiegelt. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 17 / 30

Status der Working-Copy abfragen Den Status der Working-Copy im Vgl. zum letzen Update liefert svn status. Diese Operation listet Dateien/Verzeichnisse aus der Working-Copy auf, die wie folgt markiert sein können: A Zum Versionierungssystem hinzugefügt D Aus dem Versionierungssystem entfernt C Inhalt konnte nicht konfliktfrei zusammengeführt werden? Nicht zum Versionierungssystem hinzugefügt Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 18 / 30

Die Versionenverwaltung von Subversion Der Status bzw. die Version (Revision) einer Repository ist definiert durch die Verzeichnisstruktur und den Inhalt der Dateien in der Repository. Subversion verwaltet pro Repository eine ganze Zahl, die den aktuellen Status der Repository repräsentiert. Diese Zahl wird bei jedem erfolgreichen Commit um eins erhöht. Zugriff auf ältere Versionen möglich Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 19 / 30

Die Versionsverwaltung von Subversion Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 20 / 30

Die Versionsverwaltung von Subversion Abstrakte Versionsnamen HEAD Die aktuelle Versionnummer im Repository BASE Die Versionnummer nach der letzten Update- oder Checkout-Operation Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 21 / 30

Konfliktsituationen Nach einem Update können sich in einer Datei Änderungen aus der Repository mit Änderungen in der Working Copy überschneiden. Subversion behandelt solche Konflikte wie folgt: Die Datei wird als Conflict markiert. Der Inhalt der Datei wird so strukturiert, dass die sich überlappenden Änderungen sichtbar werden. Es werden lokal folgende Dateien erzeugt:.mine Die lokale Version der Datei.rOLDREV Die BASE-Version der Datei.rNEWREV Die HEAD-Version der Datei Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 22 / 30

Konflikte lösen Kommunikation zwischen Autoren notwendig Nach der Einigung: svn resolve Datei Die Conflict-Markierung wird entfernt und die drei erzeugten Dateien werden gelöscht. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 23 / 30

Projekt-Branching Man betrachte folgendes Szenario der Softwareentwicklung: Projekt A wird gestartet Ist die Funktionalität für Release 1 erreicht, wird eine Kopie von A zu Testzwecken erzeugt. Während der Testphase von Release 1, wird Projekt A weiterentwickelt. Beim Testen von Release 1 beseitigte Fehler sollen auch bei der Weiterentwiklung berücksichtigt werden, und umgekehrt. Erreicht Release 1 in der Testphase einen ausreichenden Reifegrad, wird eine Kopie davon erzeugt und diese an den Kunden ausgeliefert. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 24 / 30

Projekt-Branching Man betrachte folgendes Szenario der Softwareentwicklung: Projekt A wird gestartet Ist die Funktionalität für Release 1 erreicht, wird eine Kopie von A zu Testzwecken erzeugt. Während der Testphase von Release 1, wird Projekt A weiterentwickelt. Beim Testen von Release 1 beseitigte Fehler sollen auch bei der Weiterentwiklung berücksichtigt werden, und umgekehrt. Erreicht Release 1 in der Testphase einen ausreichenden Reifegrad, wird eine Kopie davon erzeugt und diese an den Kunden ausgeliefert. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 24 / 30

Projekt-Branching Man betrachte folgendes Szenario der Softwareentwicklung: Projekt A wird gestartet Ist die Funktionalität für Release 1 erreicht, wird eine Kopie von A zu Testzwecken erzeugt. Während der Testphase von Release 1, wird Projekt A weiterentwickelt. Beim Testen von Release 1 beseitigte Fehler sollen auch bei der Weiterentwiklung berücksichtigt werden, und umgekehrt. Erreicht Release 1 in der Testphase einen ausreichenden Reifegrad, wird eine Kopie davon erzeugt und diese an den Kunden ausgeliefert. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 24 / 30

Projekt-Branching Man betrachte folgendes Szenario der Softwareentwicklung: Projekt A wird gestartet Ist die Funktionalität für Release 1 erreicht, wird eine Kopie von A zu Testzwecken erzeugt. Während der Testphase von Release 1, wird Projekt A weiterentwickelt. Beim Testen von Release 1 beseitigte Fehler sollen auch bei der Weiterentwiklung berücksichtigt werden, und umgekehrt. Erreicht Release 1 in der Testphase einen ausreichenden Reifegrad, wird eine Kopie davon erzeugt und diese an den Kunden ausgeliefert. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 24 / 30

Projekt-Branching Man betrachte folgendes Szenario der Softwareentwicklung: Projekt A wird gestartet Ist die Funktionalität für Release 1 erreicht, wird eine Kopie von A zu Testzwecken erzeugt. Während der Testphase von Release 1, wird Projekt A weiterentwickelt. Beim Testen von Release 1 beseitigte Fehler sollen auch bei der Weiterentwiklung berücksichtigt werden, und umgekehrt. Erreicht Release 1 in der Testphase einen ausreichenden Reifegrad, wird eine Kopie davon erzeugt und diese an den Kunden ausgeliefert. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 24 / 30

Projekt-Branching Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 25 / 30

Projekt-Branching mit Subversion Erzeuge im Projektverzeichnis Unterverzeichnisse: trunk Für die Hauptlebenslinie des Projektes branch Enthält z. B. Unterverzeichnisse»Release 1«,»Release 2«,»Release 3«,..., die Nebenzweige der Hauptlinie sind. tag Enthält z. B. Unterverzeichnisse»Auslieferung 1.0«,»Auslieferung 1.0.1«,..., die Nebenzweige der»branch«-unterverzeichnisse sind Erzeugung von Nebenzweigen mit Übernehmen von Änderungen: svn copy svn merge Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 26 / 30

Projekt-Branching mit Subversion Erzeuge im Projektverzeichnis Unterverzeichnisse: trunk Für die Hauptlebenslinie des Projektes branch Enthält z. B. Unterverzeichnisse»Release 1«,»Release 2«,»Release 3«,..., die Nebenzweige der Hauptlinie sind. tag Enthält z. B. Unterverzeichnisse»Auslieferung 1.0«,»Auslieferung 1.0.1«,..., die Nebenzweige der»branch«-unterverzeichnisse sind Erzeugung von Nebenzweigen mit Übernehmen von Änderungen: svn copy svn merge Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 26 / 30

Projekt-Branching mit Subversion Erzeuge im Projektverzeichnis Unterverzeichnisse: trunk Für die Hauptlebenslinie des Projektes branch Enthält z. B. Unterverzeichnisse»Release 1«,»Release 2«,»Release 3«,..., die Nebenzweige der Hauptlinie sind. tag Enthält z. B. Unterverzeichnisse»Auslieferung 1.0«,»Auslieferung 1.0.1«,..., die Nebenzweige der»branch«-unterverzeichnisse sind Erzeugung von Nebenzweigen mit Übernehmen von Änderungen: svn copy svn merge Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 26 / 30

Projekt-Branching mit Subversion Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 27 / 30

Nebenzweige erzeugen svn copy Quelle Ziel Kopiert Quelle nach Ziel, wobei sich die Kopie die Vergangenheit mit dem Original teilt: Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 28 / 30

Änderungen übernehmen svn merge Quelle1[@N] Quelle2[@M] Ziel Vergleicht Quelle1 in der Revision N mit Quelle2 in der Revision M und wendet die Unterschiede auf Verzeichnis Ziel der Working Copy an. Die Unterschiede sind die Liste der Operationen, die durchgeführt werden müssen, um die Verzeichnisstruktur Quelle1 in die Struktur Quelle2 zu überführen. Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 29 / 30

Literatur Subversion-Handbuch: http://svnbook.red-bean.com/ Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 30 / 30