Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009



Ähnliche Dokumente
Versionsverwaltung mit SVN

Kurzanleitung zu. von Daniel Jettka

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

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

Software Engineering in der Praxis

Einführung in Subversion

Versionskontrolle mit Subversion

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

PROJEKTVERZEICHNIS EINRICHTEN

Wie benutzt man TortoiseSVN

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

Einfu hrung in Subversion mit TortoiseSVN

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

OP-LOG

MetaQuotes Empfehlungen zum Gebrauch von

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

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

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Arbeiten mit dem neuen WU Fileshare unter Windows 7

Datensicherung und Wiederherstellung

Die Dateiablage Der Weg zur Dateiablage

Dokumentenmanagement mit hyscore

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

ARAkoll 2013 Dokumentation. Datum:

Hilfe zur Dokumentenverwaltung

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

Administrator Handbuch

Quellcodeverwaltung mit SubVersion

Microsoft Office 365 Kalenderfreigabe

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

FTP-Leitfaden Inhouse. Benutzerleitfaden

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

WebDAV-Zugang unter Windows 7 mit NetDrive

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

ICS-Addin. Benutzerhandbuch. Version: 1.0

If knowledge matters DOKUMENTENERSTELLUNG MIT SHAREPOINT LIBRARIES

FTP-Leitfaden RZ. Benutzerleitfaden

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

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

OSD-Branchenprogramm. OSD-Version Was ist neu? EDV-Power für Holzverarbeiter

Individuelle Formulare

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Bilder zum Upload verkleinern

transfer.net Erste Schritte mit transfer.net

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

SJ OFFICE - Update 3.0

SANDBOXIE konfigurieren

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

DOKUMENTATION VOGELZUCHT 2015 PLUS

Einleitung: Frontend Backend

SSH Authentifizierung über Public Key

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Moodle aktuell halten mit Git

SICHERN DER FAVORITEN

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Updatehinweise für die Version forma 5.5.5

Live Update (Auto Update)

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

DOKUMENTATION PASY. Patientendaten verwalten

Tutorial -

COSIDNS 2 ISPconfig3. Version 0.1 ( )

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Anleitung. Einrichten Ihres Postfaches. Mail (Mac OS X)

Lizenzen auschecken. Was ist zu tun?

7 SharePoint Online und Office Web Apps verwenden

Kostenstellen verwalten. Tipps & Tricks

Adminer: Installationsanleitung

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Anwenderdokumentation PersoSim

Übung: Verwendung von Java-Threads

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

GRAF-SYTECO. Handbuch. Zeichensatzgenerator für AT-Geräte. Erstellt: November SYsteme TEchnischer COmmunikation

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

SharePoint Demonstration

Deployment Deployment Seite 1 / 25

DriveLock 6. DriveLock und das Windows Sicherheitsproblem mit LNK Dateien. CenterTools Software GmbH

Framework zur Unterstützung von Unit-Tests

Kern Concept AG Software Entwicklung HMO und BlueEvidence

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Hilfe bei Adobe Reader. Internet Explorer 8 und 9

Öffnen und Hochladen von Dokumenten

Praktikum Ingenieurinformatik (PI)

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Erstellen einer PostScript-Datei unter Windows XP

Transkript:

Subversion von Stefan Arndt, Christian Autermann und Dustin Demuth 5. November 2009 Inhaltsverzeichnis 1 Versionierung 1 1.1 Zweck von Versionierung................................. 1 1.2 Geschichtliches...................................... 1 1.3 Aufbau der Versionierung................................ 2 2 Wichtige Begriffe 2 2.1 Repository......................................... 2 2.2 Revision.......................................... 2 2.3 Verzeichnisstruktur.................................... 2 2.4 Konflikte......................................... 3 2.4.1 Merge....................................... 3 2.4.2 Locks....................................... 4 3 Client-Server-Architektur 4 4 Graphical Frontends 4 4.1 SmartSVN......................................... 4 4.2 Tortoise SVN....................................... 5 4.3 Subclipse SVN...................................... 6 1 Versionierung 1.1 Zweck von Versionierung Versionierung eigentlich Versionsverwaltung beschäftigt sich mit der Erfassung von Änderungen an Dokumenten. Hierfür werden, in dem zu verwaltendem Archiv, für jede Datei Zeitstempel und Nutzerdaten erfasst, welche zu jedem Zeitpunkt wiederhergestellt werden können. Somit wird eine lückenlose Nachvollziehbarkeit von Textänderungen gewährleistet. Versionsverwaltung ist somit eine Art des Variantenmanagements, welches hauptsächlich in der Industrie eingesetzt wird. Dieses Konzept hat sich auf die Softwareentwicklung übertragen. 1.2 Geschichtliches SVN entstand als Ersatz für CVS (Content Versioning System). Jedoch hatte CVS immense Einschränkungen, da es nach den Orten der Änderungen versionierte und nicht nach der zeitlichen 1

Abfolge. Das brachte die SVN-Entwickler dazu Schönheitsreparaturen an CVS durchzuführen. Dies begann im Februar 2000. Daraufhin verbreitete sich Subversion selbst, nachdem die Entwickler von CVS auf SVN umstellten. Die erste stabile Version erschien im Jahr 2004. 1.3 Aufbau der Versionierung In der Architektur von Subversion wurde das alte Schema P: L-T (Projectarchive: Location-Time) von CVS zu P: T-L umgewandelt. Dies schaffte den Vorteil, dass SVN anschaulicher wurde und somit die erfahrungsgemäße Realität an Änderungen besser nachstellen konnte. Hierbei bezieht sich das Versionsschema nicht mehr auf einzelne Dateien - wie in CVS - sondern auf das ganze Projekt. Somit lässt sich einfacher eine konkrete Version beschreiben. 2 Wichtige Begriffe 2.1 Repository Unter einem Repository versteht man ein zentrales Archiv, das über die gesamte Versionsgeschichte jeder Datei, die im Repository abgelegt wurde, verfügt. In der Regel nutzt man für jedes Projekt ein eigenes Repository. Zum Bearbeiten der versionierten Dateien lädt man sich eine lokale Arbeitskopie aus dem Repository und lädt anschließend die veränderten Dateien in das Repository. 2.2 Revision Im jedem Repository gibt es die sogenannte Revisionsnummer. Beim Anlegen eines Repositories beträgt sie null und wird bei jeder eingereichten Änderung um 1 inkrementiert. Für jede versionierte Datei wird zusätzlich die Revisionsnummer der letzten Bearbeitung gespeichert. Durch Angabe einer Nummer lässt sich die Version einer Datei eindeutig bestimmen und so auch der Zustand einer Datei oder des gesamten Projektes zu einem bestimmten Zeitpunkt wiederherstellen. Die aktuellste Revision des Repository nennt man auch head und die lokale, noch nicht eingereichte Revision, heißt base. 2.3 Verzeichnisstruktur Unabhängig von der Art des Projektes hat sich eine Verzeichnisstruktur etabliert, die mehrere Entwicklungsstränge ermöglicht. Der Hauptentwicklungszweig lagert in trunk, Nebenzweige werden in branch abgelegt und tag enthält benannte Versionen. Da in Subversion das Kopieren einer Datei durch einen neuen Verweis in der Datenbank realisiert ist, ist es möglich ohne zusätzlichen Speicherbedarf Dateien zu kopieren und deren Versionsgeschichte zu erhalten. Möchte man nun eine eine benannte Version (bspw. ein Release Candidate o.ä.) erstellen, reicht es mit Hilfe von Subversion das Projekt aus trunk nach tag zu kopieren und 2

dort umzubenennen. Subversion legt dabei nur eine Verknüpfung unter dem neuen Namen mit der Versionsgeschichte der Originaldateien an. Gleiches geschieht beim Erstellen eines neuen Entwicklungszweiges in branch. 2.4 Konflikte Abbildung 1: Konflikt beim gleichzeitigen Bearbeiten einer Datei (Quelle: eigene Darstellung). Subversion erlaubt das gleichzeitige Arbeiten mehrerer Personen an der selben Datei. Dies führt zwangsläufig zu Konflikten wie Abbildung 1 zeigt. Subversion bietet hierfür zwei Lösungen an. 2.4.1 Merge In Abbildung 1 kann B nicht einfach seine Änderungen commiten, da dies alle Änderungen, die A gemacht hat, verwerfen würde. Daher ist B gezwungen die im Konflikt stehenden Dateiversionen zu verschmelzen (zu mergen). Dies kann automatisch (bsplw. wenn sich die Veränderungen nicht gegenseitig beeinflussen) oder von Hand geschehen. Um dies zu vereinfachen gibt es eine Vielzahl Tools die einen synoptischen Vergleich der Dateien ermöglichen und die Unterschiede visualisieren. 3

2.4.2 Locks Locks eigenen sich besonders für binäre Dateien, bei denen ein synoptischer Vergleich der beiden in Konflikt stehenden Dateien nicht möglich ist. Um Konflikte zu Verhindern wird bevor die Datei bearbeitet wird eine Sperre (der sogenannte Lock) für die Datei angefordert. Alle anderen Personen können ab diesem Zeitpunkt zwar die Datei lesen und bearbeiten, allerdings nicht commiten. Erst mit dem nächsten Commit des Lock- Inhabers wird die Datei wieder für andere freigegeben. Da man eine von jemand Anders gesperrte Datei in seiner Arbeitskopie beliebig verändern kann und über ein Lock nur bei einem versuchten Commit informiert wird, empfiehlt es sich vor jedem Bearbeiten den Status einer Binärdatei zu überprüfen um unnötige Arbeit zu verhindern. 3 Client-Server-Architektur Subversion besteht aus den Kommandozeilenprogrammen svn, svnlook, svnadmin und svnserve. Zum Erzeugen und Verwalten eines Repositories dient svnadmin. Um auf ein Repository zuzugreifen dienen svn und svnlook, wobei letzteres lesend zugreift und nur lokal verwendet werden kann. Der Subversion-Server svnserve bietet einen Server für das svn-protokoll, sodass auch entfernter Zugriff auf das Repository per svn möglich ist. Alternativ existiert auch eine Erweiterung für den Apache-Web-Server, der das Repository über WebDAV zu Verfügung stellt. Für einen sicheren entfernten Zugriff empfiehlt es sich das svn-protokoll über SSH zu tunneln oder den WebDAV-Zugriff mittels SSL zu verschlüsseln. 4 Graphical Frontends Es gibt eine große Auswahl von graphischen Benutzeroberflächen um auf Subversion-Repositories zuzugreifen. Sie vereinfachen den Umgang mit SVN enorm, da komplett auf die Kommandozeilen- Eingabe verzichtet wird. Drei verschiedene Arten von GUIs werden hier nun kurz vorgestellt: 4.1 SmartSVN SmartSVN ist ein eigenständiges Programm, das auf den Betriebssystemen Linux, UNIX, Mac OS X und Windows lauffähig ist. Im Internet ist eine gratis Demoversion für 30 Tage auffindbar, wenn man allerdings die Vollversion benutzen möchte, muss man dafür zahlen. Neben dem Standalone-Client integriert sich SmartSVN unter Windows zusätzlich auch noch in den Explorer (Abbildung 2). Das Menü bietet eine übersichtliche Dateiverwaltung (Abbildung 3) und optisch gut aufbereitete Vergleiche der Versionen an (Abbildung 4). Neben dem HTTP-Protokoll, werden auch noch HTTPS, SVN und SVN+SSH unterstützt 1. 1 Quelle: http://www.syntevo.com/smartsvn 4

Abbildung 2: SmartSVN: Shell-Integration Abbildung 3: SmartSVN: Dateiverwaltung Abbildung 4: SmartSVN: Unterschiedskontrolle 4.2 Tortoise SVN Tortoise hingegen ist ein kostenloser Windows-Client der unter der GNU GPL Lizenz steht. Es integriert sich ebenfalls in den Windows-Explorer und ist deshalb außerhalb und unabhängig von einer IDE verwendbar. Im Gegensatz zu SmartSVN ist TortoiseSVN aber kein standalone-client, sondern bietet nur die reine Shell-Extension, die allerdings wesentlich umfangreicher ist (Abbildung 5). Zur Zeit ist die Software in 34 Sprachen verfügbar und es werden standardmäßig die Protokolle 5

http, https, svn, svn+ssh, file und svn+xxx unterstützt 2. Abbildung 5: Tortoise: Shell-Extension 4.3 Subclipse SVN Subclipse ist die dritte GUI Variante, die nun hier vorgestellt wird. Anders als die beiden vorhergegangenen Programme integriert sich Subclipse direkt in die Entwicklungsumgebung Eclipse. Das Eclipse-Plugin steht unter der EPL-Lizenz und ist unter den Betriebssystemen Linux, Mac OS X und Windows lauffähig. Subclipse unterstützt die folgenden Protokolle: http, https, svn, svn+ssh und file. Neben dem Vorteil die Dateien direkt vom SVN Repository in die IDE (siehe Abbildung 6) zu laden, bietet Subclipse zusätzlich ansprechende Features wie z.b. die Generierung von Versionsgraphen. 3 2 Quelle: http://tortoisesvn.tigris.org/, http://de.wikipedia.org/wiki/tortoisesvn 3 Quelle: http://subclipse.tigris.org/ 6

Abbildung 6: Subclipse: Eclipse Synchronize View 7