Subversion (SVN) – Tutorial, Tipps & Tricks
Wer schon einmal in einem Team von Programmierern gearbeitet hat, wird das Problem mit Sicherheit kennen. Mehrere Leute arbeiten gleichzeitig an einem Projekt und keiner der Kollegen weiß davon. Das führt schnell dazu, dass am gleichen Projektteil von verschiedenen Leuten unterschiedliche Änderungen durchgeführt werden. Mit der frei erhältlichen Software “Subversion” kann dieses Problem gelöst werden. Mit diesem Programm werden alle Skripte und Dateien geordnet verwaltet und auch überwacht, so dass keine Konflikte mehr entstehen können.
In dieser Dokumentation wird die Arbeit mit Subversion von der Installation bis zu möglichen Problemen beschrieben sowie die Vor- und Nachteile dieser Software aufgezeigt.
Geschichte von Subversion
Seit dem Jahr 2000 wird die Software als Ablösung der damals sehr verbreiteten Versionsverwaltung CVS (= Concurrent Versions System) entwickelt. Am 23.02.04 stand die erste stabile Version 1.0 zur Verfügung. Ungefähr ein halbes Jahr später erschien die Version 1.1, mit der die Repositories nicht mehr zwingend in einer Berkeley-Datenbank sondern auch über das Dateisystem direkt verwaltet werden können. Weiterhin wurden in dieser Version internationale Programmausgaben ermöglicht. Seit der im Mai 2005 erschienenen Version 1.2 waren optionale Bearbeitungssperren für Dateien möglich, was zum Teil für Binärdateien vorteilhaft ist. Im Januar 2006 wurde die Version 1.3 freigegeben, mit der Verbesserungen in den Bereichen Server-Logging, Autorisierung, Programmiersprachen-Anbindungen, Kommando-Optionen und Performance bot. Die aktuelle Hauptversion des Programms wurde im September 2006 veröffentlicht, deren wichtigste Neuerung das Tool "svnsync", welches das Spiegeln von Repositories ermöglicht.Auf welchem Konzept basiert Subversion?
Der mit entscheidende Vorteil von Subversion ist die Arbeit im Bereich "Tagging" und "Branching". In diesem Zusammenhang kennt Subversion nur die Option der Dateikopie, die je nach Nutzungsart Tag- oder Branch-Charakter hat. Aufgrund dessen ist jede Kopie eines Verzeichnisses oder einer Datei ein Branch davon. Tags entstehen in Subversion, wenn man davon eine Kopie anlegt und keine Änderungen mehr vornimmt. Da es in Subversion keine strikte Trennung von Tag- und Branch-Semantik (= Schreibweise) gibt, liegt die genaue Strukturierung des/der Repositories beim Administrator. Die folgende Grafik zeigt, welches Struktur-Konzept sich in der Praxis etabliert hat.
Darstellung: Typische Repository-Struktur
Den Administratoren eines Projektes steht es frei, die drei Zweige noch weiter nach ihren Bedürfnissen zu unterteilen.
Arbeitsweise mit Subversion
In der folgenden Grafik wird aufgezeigt, wie grundlegend mit Subversion gearbeitet wird.
Darstellung: Arbeitsweise mit SVN
Mit der Hilfe des Makefiles werden die aktualisierten Dateien der Working Copy in das eigentliche Projektverzeichnis kopiert. Das Projektverzeichnis ist zum Betrieb des Projektes notwendig.
Nach dem Ende der Entwicklung muss das SVN-Repository wieder aktualisiert werden. Zu diesem Zweck werden die aktualisierten Dateien aus der Working Copy "eingecheckt". Das bedeutet, dass die entsprechenden Dateien wieder ins Repository übertragen werden. SVN erkennt automatisch, welche Dateien aktualisiert wurden.
Installation von Subversion
Installation des Webservers
Subversion ist eng an den Apache-Webserver gekoppelt. Es besteht zwar keine Notwendigkeit, den Webserver zu installieren, aber zur Verwaltung der Repositories ist es empfehlenswert. Die Server-Software kann über die folgende Internet-Adresse heruntergeladen werden: http://httpd.apache.org/download.cgi.Bei der Installation gibt es eine Änderung zur herkömmlichen Variante, die zwingend beachtet werden muss. Bei der aktuellen SVN-Version 1.4.x muss man die Version 2.0.x des Apache-Webservers verwenden.
Darstellung: Änderung bei der Installation
Installation der Subversion-Software
Auf der Internetseite "http://subversion.tigris.org/project_packages.html" können alle aktuellen SVN-Versionen für die jeweiligen Betriebssysteme heruntergeladen werden. In der Windows-Sektion muss man sich zuerst entscheiden, ob man SVN für den Apache 2.0.x oder 2.2.x herunterladen möchte. Dazu stehen die Links "Win32 packages built against Apache 2.0" bzw. "Win32 packages built against Apache 2.2" zur Verfügung. Bei einem Klick auf einen der Links bekommt man alle verfügbaren Versionen angezeigt. Der Einfachheit halber sollte man sich die Windows-Installer-Version herunterladen. Diese Versionen haben den allgemeinen Dateinamen "svn-x.x.x-setup.exe".Die eigentliche Installationsprozedur beinhaltet keine Besonderheiten. Man wählt - wie üblich - das Installationsverzeichnis aus und legt bei Bedarf eine Desktop-Verknüpfung fest. Eines der Installationsfenster ist vielleicht für Neulinge interessant. Die Verknüpfungen in diesem Fenster bieten die Möglichkeit, entweder auf dem Desktop oder in der Schnellstartleiste eine Verknüpfung für die SVN-Dokumentation anzulegen.
Die Installationsroutine liefert automatisch alle SVN-Kommandos sowie die benötigten Apache-Module mit. Nach dem Ende der Installation können sie diese bereits ohne weitere Eingriffe testen. Dazu sind die folgenden Schritte notwendig:
1. Starten der Windows-Konsole über "Start" / "Ausführen" / "cmd" eingeben
2. Eingabe des Kommandos "svn checkout http://svn.collab.net/repos/svn/trunk"
Dabei sollte man ein Verzeichnis mit genügend Speicherplatz wählen, denn es wird eine große Datenmenge auf den lokalen Rechner kopiert. Wenn der Vorgang geklappt hat, wird beim Abschluss in der Konsole folgendes angezeigt:
Darstellung: Test der svn-Installation
- Im "bin"-Ordner des Subversion-Installationsverzeichnisses sind die Dateien "mod_dav_svn.so" und "mod_authz_svn.so" zu finden. Diese Dateien müssen in das "modules"-Verzeichnis im Apache-Ordner kopiert werden.
- Nach dem Kopiervorgang muss die Konfigurationsdatei des Apache-Servers bearbeitet werden.
- In der httpd.conf-Datei muss in der Zeile "#LoadModule dav_module modules/mod_dav.so" der "#" am Anfang entfernt werden. Damit wird das Modul aktiviert.
- Die Liste der Apache-Module muss die folgende Zeile hinzugefügt werden: "LoadModule dav_svn_module modules/mod_dav_svn.so".
Nach dem Anlegen des Repository-Verzeichnisses muss die httpd.conf-Datei noch einmal ergänzt werden. Die folgenden Zeilen können direkt am Ende der Datei hinzugefügt werden.
<Location /svn/myrepos>
DAV svn
SVNPath [Laufwerk]:/pfad/zum/ordner/myrepos
</Location>
Darstellung: Test der svn-Installation im Browser
Arbeiten mit Subversion
Nach der Installation der Software müssen die zu überwachenden Dateien und Ordner ins SVN-Repository übertragen werden. Dies geschieht durch das “svn import”-Kommando, welches nur zu Beginn benötigt wird. Dazu wechselt man in das Verzeichnis, in dem sich die Dateien befinden und gibt das folgende Kommando ein:
- ‚Auschecken‘ der Dateien zu Entwicklungsbeginn
- svn update
- Arbeiten mit der Working Copy
- Aktualisierung des Repositories (‚Einchecken‘)
- Status-Buchstaben beim Commit oder Update
- Änderungen rückgängig machen
- Beispiele für administrative Kommandos
- Auswahl weiterer SVN-Kommandos
- Typische Fehlermeldung in Subversion
- Tip
Sicherheit mit Subversion
Da mit Subversion die Daten mit HTTP übertragen werden, kann dies logischerweise auch über das Internet passieren. Aus diesem Grund muss auf die Sicherheit geachtet werden, so dass nicht jeder die Möglichkeit hat, die im SVN überwachten Daten zu manipulieren. Die erste Möglichkeit, für die Sicherheit zu sorgen, ist die bekannte Basic-Authentifizierung.
SVN-Client Tortoise
Wer sich nicht unbedingt mit einem text-basierten SVN-Client (= Konsole) herumschlagen möchte, kann auch auf grafische Oberflächen, die es für Windows und Linux gibt, zurückgreifen. In diesem Abschnitt der Dokumentation soll der SVN Client “Tortoise SVN Client” näher beschrieben werden.
- Hinweis zur Software
- Bezug und Download der Software
- Installation der Software
- Anwendung der Software
- Auswahl der Sprache
- TortoiseSVN-Optionen für die WorkingCopy
- Weitere Tortoise-Programme
- TortoiseIDiff
- TortoiseMerge
Svnserve
Obwohl SVN eng an den Apache gekoppelt ist, ist es nicht zwingend notwendig, den Apache als Subversion-Server zu verwenden. Subversion liefert bei der Installation ein Tool mit der Bezeichnung “svnserve” mit, mit dem ein alternativer Subversion-Server mit dem gleichen Namen eingerichtet werden kann.
- Erreichbarkeit des Repositories
- Vergleich zwischen Apache und sunserve
- Einrichtung des svnserve-Servers
- svnserve-Server als Windows Service
- Zugriff auf svnserve-Server mit ssh
Weitere Artikel
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Filezilla
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project