Inhalt. ax. inie. Max Lini. Vorwort... XIII. Einleitung...



Ähnliche Dokumente
Einführung in Subversion

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

Software Engineering in der Praxis

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Anleitung über den Umgang mit Schildern

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

Speicher in der Cloud

Statuten in leichter Sprache

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

Kurzanleitung zu. von Daniel Jettka

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

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Professionelle Seminare im Bereich MS-Office

Versionskontrolle mit Subversion

Primzahlen und RSA-Verschlüsselung

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Wie Sie mit Mastern arbeiten

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Kulturelle Evolution 12

Mobile Intranet in Unternehmen

II. Daten sichern und wiederherstellen 1. Daten sichern

Jederzeit Ordnung halten

icloud nicht neu, aber doch irgendwie anders

Drucken aus der Anwendung

Wir machen neue Politik für Baden-Württemberg

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

Dateimanagement in Moodle Eine Schritt-für

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Gruppenrichtlinien und Softwareverteilung

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt. T-Systems International GmbH. Version 1.0 Stand

SMS/ MMS Multimedia Center

Stammdatenanlage über den Einrichtungsassistenten

ratgeber Urlaub - Dein gutes Recht

Gezielt über Folien hinweg springen

Reporting Services und SharePoint 2010 Teil 1

Zwischenablage (Bilder, Texte,...)

Print2CAD 2017, 8th Generation. Netzwerkversionen

Nutzung von GiS BasePac 8 im Netzwerk

Sourcecodeverwaltung

Installationsanleitung Maschinenkonfiguration und PPs

CodeSaver. Vorwort. Seite 1 von 6

Zeichen bei Zahlen entschlüsseln

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

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

BENUTZERHANDBUCH. Version 7.6

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

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

AutoCAD Dienstprogramm zur Lizenzübertragung

Lizenzen auschecken. Was ist zu tun?

1 Mathematische Grundlagen

Übung - Konfigurieren einer Windows 7-Firewall

Informationsblatt Induktionsbeweis

Wie benutzt man TortoiseSVN

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Netzwerkversion PVG.view

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Was ist das Budget für Arbeit?

Erstellen der Barcode-Etiketten:

Warum reicht Zähneputzen nicht?

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

Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.

Haben Sie über elektronisches Schließfachmanagement nachgedacht? Ein Schließfach ist ohne ein solides Schloss nicht komplett.

ecaros2 - Accountmanager

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

Wie halte ich Ordnung auf meiner Festplatte?

Prodanet ProductManager WinEdition

Produktschulung WinDachJournal

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

WinVetpro im Betriebsmodus Laptop

Thema 1: Fotos im Internet verwenden

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

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

How-To-Do. Fernwartung einer VIPA Steuerung via Ethernet

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Einfu hrung in Subversion mit TortoiseSVN

Umwandeln und Exportieren von Adobe-Illustrator-Dateien in Illustrator für Artcut

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

Informationen zum neuen Studmail häufige Fragen

Lizenzierung von SharePoint Server 2013

Der neue persönliche Bereich/die CommSy-Leiste

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Belichtung mit Tonwertkorrektur verbessern

Erfahrungen mit Hartz IV- Empfängern

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

2. Im Admin Bereich drücken Sie bitte auf den Button Mediathek unter der Rubrik Erweiterungen.

Enigmail Konfiguration

Papa - was ist American Dream?

FRILO-Aktuell Ausgabe 2/2013

Info zum Zusammenhang von Auflösung und Genauigkeit

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Anleitung für die Formularbearbeitung

Örtliche Angebots- und Teilhabeplanung im Landkreis Weilheim-Schongau

s aus -Programm sichern Wählen Sie auf der "Startseite" die Option " s archivieren" und dann die entsprechende Anwendung aus.

STRATO Mail Einrichtung Mozilla Thunderbird

Transkript:

This is the Title of the Book, ematter Edition rst Inhalt Vorwort........................................................ Einleitung....................................................... IX XIII 1 Einführung...................................................... 1 Was ist Subversion?.............................................. 1 Die Geschichte von Subversion..................................... 2 Eigenschaften von Subversion...................................... 3 Die Architektur von Subversion..................................... 5 Subversion installieren............................................ 6 Die Komponenten von Subversion................................... 6 Ein Schnelleinstieg............................................... 7 2 Grundlegende Konzepte............................................ 10 Das Repository.................................................. 10 Versionierungsmodelle............................................ 11 Subversion in Aktion............................................. 16 Zusammenfassung............................................... 24 3 Geführte Tour.................................................... 25 Hilfe!.......................................................... 25 Import......................................................... 25 Revisionen: Nummern, Schlüsselwörter und Daten...................... 26 Das erste Auschecken............................................. 29 Der wesentliche Arbeitsablauf...................................... 30 Die History untersuchen........................................... 45 Weitere nützliche Befehle.......................................... 50 Zusammenfassung............................................... 51 Inhalt V

4 Verzweigen und Zusammenführen..................................... 52 Was ist ein Zweig?............................................... 52 Zweige verwenden............................................... 53 Änderungen zwischen Zweigen kopieren.............................. 60 Gebräuchliche Anwendungsfälle für das Zusammenführen................ 66 Eine Arbeitskopie wechseln........................................ 72 Tags........................................................... 74 Die Pflege von Zweigen............................................ 76 Zusammenfassung............................................... 78 Link 5 Repository-Administration........................................... 79 Repository-Grundlagen............................................ 79 Repository-Erzeugung und -Konfiguration............................. 83 Repository-Wartung.............................................. 88 Projekte hinzufügen.............................................. 112 Zusammenfassung............................................... 115 6 Server-Konfiguration............................................... 116 Überblick...................................................... 116 Netzwerkmodell................................................. 117 svnserve: Ein eigener Server........................................ 121 httpd: Der Apache-HTTP-Server.................................... 127 Mehrere Methoden für den Repository-Zugriff unterstützen............... 143 7 Themen für Fortgeschrittene......................................... 146 Der Laufzeit-Konfigurationsbereich.................................. 147 Eigenschaften................................................... 155 Externals-Definitionen............................................ 170 Herstellerzweige................................................. 172 8 Informationen für Entwickler......................................... 179 Geschichteter Bibliotheksaufbau.................................... 179 Die APIs benutzen................................................ 192 Im Administrationsbereich einer Arbeitskopie.......................... 196 WebDAV...................................................... 199 Programmieren mit Speicherpools................................... 200 Etwas zu Subversion beitragen...................................... 203 VI Inhalt This is the Title of the Book, ematter Edition

chts 9 Vollständige Subversion-Referenz..................................... 207 Der Subversion-Kommandozeilen-Client: svn.......................... 207 svnadmin...................................................... 250 svnlook........................................................ 257 svnserve........................................................ 265 10 Die Neuerungen in Subversion 1.3..................................... 268 Eine neue Version................................................ 268 A Subversion für CVS-Benutzer......................................... 275 B Fehlerbehandlung................................................. 283 C WebDAV und Autoversionierung...................................... 291 D Werkzeuge von Drittanbietern........................................ 300 E Creative Commons Attribution License.................................. 303 This is the Title of the Book, ematter Edition Inhalt VII

This is the Title of the Book, ematter Edition rst Kapitel 1 KAPITEL 1 Einführung Versionskontrolle bezeichnet die Kunst, Änderungen von Informationen zu verwalten. Für Programmierer, die üblicherweise viel Zeit damit verbringen, kleine Änderungen an Software vorzunehmen und diese Änderungen am nächsten Tag wieder zu verwerfen, ist sie schon lange ein wichtiges Werkzeug. Der Wert von Versionskontrollsoftware reicht jedoch weit über die Grenzen der Softwareentwicklungswelt hinaus. Wo immer Menschen Computer einsetzen, um sich häufig ändernde Informationen zu verwalten, gibt es Gelegenheit für den Einsatz einer Versionskontrolle. Und an dieser Stelle kommt Subversion ins Spiel. Dieses Kapitel enthält eine Einführung in Subversion: Was es ist, was es tut, wie Sie es bekommen. Was ist Subversion? Subversion ist ein freies/open Source-Versionskontrollsystem. Das heißt, Subversion verwaltet Dateien und Verzeichnisse über einen Zeitraum hinweg. Ein Dateibaum wird in einem zentralen Repository abgelegt. Das Repository ist im Grunde ein normaler Fileserver, mit der Ausnahme, dass es sich an jede Änderung erinnert, die jemals an den Dateien und Verzeichnissen vorgenommen wurde. Dies erlaubt es Ihnen, ältere Versionen der Daten wiederherzustellen oder zu untersuchen, in welcher Weise Sie Ihre Daten im Laufe der Zeit geändert haben. Insofern stellen sich viele Leute ein Versionskontrollsystem als eine Art Zeitmaschine vor. Subversion kann über Netzwerkgrenzen hinweg auf sein Repository zugreifen, wodurch die Nutzung durch Personen auf unterschiedlichen Computern möglich ist. Zu einem gewissen Grad wird die Zusammenarbeit gefördert durch die Möglichkeit, dass unterschiedliche Leute die gleichen Daten von ihren verschiedenen Standorten aus ändern und verwalten können. Ein schnellerer Fortschritt ist möglich, wenn es nicht nur einen einzigen Kanal gibt, den alle Änderungen passieren müssen. Und da die Arbeit versioniert ist, 1

müssen Sie nicht befürchten, dass durch das Einsparen dieses Kanals die Qualität auf der Strecke bleibt wenn eine Änderung an den Daten verkehrt ist, dann machen Sie diese Änderung einfach rückgängig. Manche Versionskontrollsysteme sind gleichzeitig Systeme zur Softwarekonfigurationsverwaltung (Software Configuration Management; SCM). Diese Systeme sind speziell darauf ausgerichtet, Quellcodebäume zu verwalten, und besitzen viele Funktionen, die eigens für die Softwareentwicklung angelegt wurden sie verstehen von sich aus Programmiersprachen oder bringen Werkzeuge zum Kompilieren von Software mit. Subversion gehört allerdings nicht zu diesen Systemen. Es handelt sich vielmehr um ein allgemeines System, das eingesetzt werden kann, um jede Sammlung von Dateien zu verwalten. Bei Ihnen sind diese Dateien vielleicht Quellcode bei anderen geht es eher um Einkaufslisten oder Videoproduktionen oder anderes mehr. Link Die Geschichte von Subversion Am Anfang des Jahres 2000 begann das Unternehmen CollabNet, Inc. (http://www.collab. net) damit, Entwickler zu suchen, die einen Ersatz für CVS schreiben sollten. CollabNet bietet eine Collaboration Software Suite namens SourceCast, die als eine Komponente eine Versionskontrolle enthält. SourceCast benutzte zwar CVS als sein an-fängliches Versionskontrollsystem, die Grenzen von CVS waren jedoch von Beginn an offensichtlich, und bei CollabNet wusste man, dass man schließlich etwas Besseres finden müsste. Leider hatte sich CVS zu einem Quasi-Standard in der Open Source-Welt entwickelt, weil es nichts Besseres gab, zumindest nicht unter einer freien Lizenz. Deshalb beschloss man bei CollabNet, ein von Grund auf neues Versionskontrollsystem zu schreiben, das sich zwar an den grundlegenden Ideen von CVS orientiert, allerdings ohne die Bugs und Fehler. Im Februar 2000 kontaktierte das Unternehmen Karl Fogel, den Autor des Buches Open Source Development with CVS (Coriolis, 1999), und fragte ihn, ob er an diesem neuen Projekt mitarbeiten wolle. Zufälligerweise diskutierte Karl zu dieser Zeit gerade das Konzept für ein neues Versionskontrollsystem mit seinem Freund Jim Blandy. 1995 hatten die beiden Cyclic Software gegründet, eine Firma, die CVS-Dienstleistungsverträge anbot. Und obwohl sie später das Unternehmen verkauften, benutzten sie weiterhin CVS bei ihrer täglichen Arbeit. Ihr Frust mit CVS hatte Jim dazu veranlasst, über bessere Möglichkeiten der Verwaltung versionierter Daten nachzudenken. Er hatte sich dabei nicht nur den Namen Subversion bereits ausgedacht, sondern konnte auch schon das grundlegende Design des Subversion-Repository vorweisen. Als CollabNet anrief, stimmte Karl sofort zu, an dem Projekt mitzuarbeiten, und Jim brachte seinen Arbeitgeber, RedHat Software, dazu, ihn auf unbestimmte Zeit für das Projekt freizustellen. CollabNet stellte Karl und Ben Collins-Sussman ein, und die eigentliche Entwurfsarbeit begann im Mai. Mit Hilfe einiger gut platzierter Hinweise von Brian Behlendorf und Jason Robbins von CollabNet und Greg Stein (zu diesem Zeitpunkt unabhängiger Entwickler, aktiv im Web- DAV/DeltaV-Spezifikationsprozess) lockte Subversion schnell eine Gemeinschaft aktiver Entwickler an. Es stellte sich heraus, dass viele Leute die gleichen frustrierenden Erfah- 2 Kapitel 1: Einführung

chts rungen mit CVS gemacht hatten und die Chance nutzen wollten, endlich etwas daran zu ändern. Das ursprüngliche Entwurfsteam einigte sich auf einfache Ziele. Man wollte keine neuen Wege in der Versionskontrollmethodik beschreiten, sondern einfach nur CVS verbessern. Das Team war sich darin einig, dass Subversion dem CVS-Funktionsumfang entsprechen und das gleiche Entwicklungsmodell wahren, nicht jedoch die offensichtlichsten Fehler von CVS kopieren sollte. Zwar musste es kein transparenter Ersatz für CVS sein, sollte aber CVS dennoch so weit gleichen, dass ein Umstieg für jeden CVS-Benutzer mit minimalem Aufwand möglich war. Nach 14 Monaten Programmierung wurde Subversion am 31. August 2001 eigenständig, das heißt, die Subversion-Entwickler stiegen bei der Verwaltung des Quellcodes von CVS auf Subversion um. Obwohl CollabNet das Projekt ins Leben rief und auch weiterhin einen großen Teil der Arbeit finanziert (das Unternehmen bezahlt einige der Vollzeitentwickler von Subversion), wird Subversion wie die meisten Open Source-Projekte betrieben, gesteuert durch eine lockere, transparente Menge von Regeln, die die Meritokratie fördern. Die Copyright-Lizenz von CollabNet geht vollständig mit den Debian Free Software Guidelines konform. Mit anderen Worten, es steht jedem frei, Subversion nach Belieben herunterzuladen, zu verändern und weiterzugeben; er benötigt keine Erlaubnis von CollabNet oder sonst wem. Eigenschaften von Subversion Die Funktionen und Eigenschaften, die Subversion für die Versionskontrolle auf das Tapet bringt, lassen sich am besten dadurch beschreiben, inwiefern sie das Design von CVS verbessern. Falls Sie mit CVS nicht vertraut sind, werden Sie möglicherweise nicht alle Eigenschaften verstehen. Und falls Sie sich mit Versionskontrolle überhaupt nicht auskennen, sollten Sie vermutlich sowieso erst Kapitel 2 lesen, wo wir eine Einführung in die Versionskontrolle im Allgemeinen liefern. Subversion bietet: Verzeichnisversionierung CVS verfolgt nur die Historie einzelner Dateien, während Subversion ein virtuelles versioniertes Dateisystem implementiert, das nachvollzieht, wie sich ganze Verzeichnisbäume im Laufe der Zeit ändern. Dateien und Verzeichnisse werden versioniert. Echte Versionshistorie Da CVS sich auf die Dateiversionierung beschränkt, werden solche Operationen wie Kopieren und Umbenennen die an Dateien ausgeführt werden könnten, aber in Wirklichkeit Änderungen an einem übergeordneten Verzeichnis vornehmen in CVS nicht unterstützt. Außerdem können Sie in CVS eine versionierte Datei nicht durch ein neues Objekt des gleichen Namens ersetzen, ohne dass das neue Objekt die Eigenschaften von Subversion 3

Geschichte der alten möglicherweise gar nicht damit in Beziehung stehenden Datei erbt. Bei Subversion können Sie sowohl Dateien als auch Verzeichnisse hinzufügen, löschen, kopieren und umbenennen. Und jede neu hinzugefügte Datei beginnt mit einer frischen, neuen und eigenen Geschichte. Atomare Änderungsbestätigungen (Commits) Eine Sammlung von Modifikationen wird entweder vollständig oder überhaupt nicht in das Repository übernommen. Dadurch haben Entwickler die Möglichkeit, Änderungen als logische Einheiten aufzubauen und zu bestätigen. Das beugt Problemen vor, die auftreten könnten, wenn nur ein Teil einer bestimmten Menge von Änderungen erfolgreich an das Repository geschickt wird. Versionierte Metadaten Mit jeder Datei und jedem Verzeichnis ist eine Menge von Eigenschaften Schlüssel und deren Werte verknüpft. Sie können beliebige Schlüssel-/Wert-Paare anlegen und speichern. Die Eigenschaften werden ebenso wie die Dateiinhalte über die Zeit versioniert. Wahl der Netzwerkschichten Subversion verfolgt eine abstrahierte Auffassung des Repository-Zugriffs, wodurch neue Netzwerkmechanismen leichter implementiert werden können. Subversion kann als Erweiterungsmodul an den Apache-HTTP-Server angeschlossen werden. Dadurch hat Subversion einen großen Vorteil hinsichtlich Stabilität und Interoperabilität sowie sofortigen Zugriff auf existierende Funktionen, die von diesem Server zur Verfügung gestellt werden Authentifizierung, Autorisierung, transparente Komprimierung (Wire Compression) und so weiter. Ein abgespeckter autonomer Subversion-Server-Prozess ist ebenfalls verfügbar. Dieser Server verwendet ein eigenes Protokoll, das leicht über SSH getunnelt werden kann. Konsistente Behandlung der Daten Subversion drückt Dateiunterschiede mit Hilfe eines binären Differenzialgorithmus aus, der auf (vom Menschen lesbaren) Text- und (vom Menschen nicht lesbaren) Binär-Dateien identisch funktioniert. Beide Dateitypen werden gleich komprimiert im Repository abgelegt, Differenzen werden in beide Richtungen über das Netzwerk übertragen. Effizientes Verzweigen und Markieren Die Kosten für das Verzweigen (Branching) und Markieren (Tagging) müssen nicht proportional zur Projektgröße verlaufen. Subversion erzeugt Verzweigungen und Marken (Tags), indem es einfach das Projekt kopiert, wobei ein Mechanismus zum Einsatz kommt, der ähnlich einem harten Link ist. Dadurch erfordern diese Operationen nur einen kleinen, konstanten Zeitaufwand. Wartbarkeit Subversion trägt keinen historischen Ballast mit sich herum; das System ist als eine Sammlung von Shared-C-Bibliotheken mit wohldefrten APIs implementiert. Dadurch kann Subversion außerordentlich gut gewartet und von anderen Anwendungen und Sprachen genutzt werden. Link 4 Kapitel 1: Einführung

chts Die Architektur von Subversion Auf der einen Seite befindet sich ein Subversion-Repository, das alle Ihre versionierten Daten aufnimmt. Auf der anderen Seite liegt Ihr Subversion-Client-Programm, das die lokalen Wiedergaben von Teilen dieser versionierten Daten verwaltet (so genannte Arbeitskopien). Zwischen diesen Extremen gibt es mehrere Wege durch verschiedene Repository Access-(RA-)Ebenen. Einige dieser Wege verlaufen durch Computernetzwerke und Netzwerk-Server, die dann auf das Repository zugreifen. Andere umgehen das Netzwerk ganz und gar und greifen direkt auf das Repository zu. Abbildung 1-1 zeigt eine Art Gesamtansicht des Subversion-Designs. Abbildung 1-1: Die Architektur von Subversion Die Architektur von Subversion 5