Aufmacher

Subversion für Anfänger

Versionen verwalten

01.09.2007
Nicht nur Programmierer kennen das Problem: Sobald es mehrere Versionen einer Datei gibt, bricht Chaos aus. Subversion steuert dagegen.

Sobald Sie über das lokale Netzwerk oder das Internet mit mehreren Menschen an einem Projekt arbeiten, kommt es zur Konfusion: An welcher Datei arbeitet der Kollege eigentlich gerade, ist das jetzt meine letzte Version der Datei? Die meisten Menschen basteln in Handarbeit eine Notlösung, um wenigstens Veränderungen in den eigenen Dateien im Blick zu behalten. Macht das jeder, dann gibt es am Ende 20 Bastel-"Lösungen" – und noch immer weiß niemand, woran der Nachbar gerade arbeitet.

Eine Versionierungssoftware wie Subversion (kurz SVN) [1] (Abbildung 1) behält die Übersicht und nimmt Ihnen diese Arbeit ab. Sie müssen zwar ein paar neue Befehle lernen, das Wissen hilft Ihnen aber auch in anderen Situationen, etwa:

  • wenn Sie auf einer Webseite den lapidaren Satz lesen, dass Sie die neueste Version der Software ja "aus dem SVN ziehen können";
  • wenn Sie kein Programmierer sind, sondern Texte schreiben, Rechnungen verwalten oder Projekte am Computer planen;
  • wenn Sie Zwischenstände Ihrer Dateien aufbewahren wollen.
Abbildung 1: Sie können Subversion auch aus dem Quellcode selbst kompilieren, die meisten Distributionen stellen aber fertige Pakete bereit.

Bei SVN handelt es sich um eine Antwort auf CVS (Concurrent Versions System) [2], eine in Entwicklerkreisen weit verbreitete und nach wie vor beliebte Versionierungsverwaltung. Subversion will die Mängel von CVS beheben und steht unter einer Apache/BSD-Lizenz.

Alles ist ein Kreis

Subversion generiert gewöhnlich ein Projektarchiv (das Subversion-Repository) auf das unterschiedliche viele SVN-Clients zugreifen. Sie können das Archiv auch mittels Apache und dem Modul mod_dav_svn als Server auf einem Rechner im Internet betreiben, etwa bei Freshmeat.net oder Sourceforge.net. Arbeiten Sie allein, richten Sie am besten ein lokales Subversion-Archiv auf Ihrem Rechner ein.

Zunächst legen Sie ein Repository an. Dieses verstaut dann die zu bearbeitenden Dateien in einer internen Datenbank. Standardmäßig nutzt SVN zwar mittlerweile die FSFS-Datenbank – einige Nutzer setzen aber noch auf die ältere Berkeley-Database.

Zum Bearbeiten der Daten fordern die SVN-Clients zunächst eine Arbeitskopie beim Subversion-Archiv an ("Checkout") und legen diese auf dem lokalen Rechner ab. Sie modifizieren die Dateien und pflegen sie dann wieder in das Projektarchiv ein, was unter dem Begriff "Commit" firmiert (Abbildung 2). Subversion schaut sich die veränderten Dateien an und verteilt – so es keine Konflikte gibt – neue Revisionsnummern (siehe Kasten "Revisionismus").

Abbildung 2: So sieht – stark vereinfacht – die Arbeit mit einem SVN-Archiv aus: Checkout, Bearbeiten, Update, Commit.

Revisionismus

Sobald eine neue Datei im Repository landet, erhalten sämtliche Ordern und Dateien eine neue, ganzzahlige Revisionsnummer. In der lokalen Arbeitskopie existieren indes mitunter mehrere Revisionen nebeneinander. Ein globaler Update-Befehl bringt auch hier sämtliche Dateien auf den letzten Stand. Der Befehl svn co -r# http://mysvn.dyndns.org/svn/trunk arbeitskopie dreht die Uhr zurück und holt eine alte Revision aus dem Repository, wobei Sie das # durch die Nummer der Revision ersetzen.

Jeder darf sich ohne falsche Skrupel beliebig viele Arbeitskopien vom Server holen und diese verändern – so lange die Betreiber des Repositories das nicht mit Hilfe von Passwörtern verhindern. Subversion ficht das nicht an. Es interessiert sich erst für die Daten, wenn Sie versuchen, diese wieder einzuchecken. Die meisten freien Projekte erlauben jedem das Auschecken, Einchecken dürfen hingegen nur angemeldete Entwickler.

Statt Veränderungen blind zu übernehmen, prüft Subversion, ob es mittlerweile eine neue Version der Software gibt. Daher bringen Sie als Entwickler Ihre Daten vor dem Einchecken über ein Update auf den neuesten Stand. Denn bastelt genau in diesem Augenblick ein anderer Entwickler an derselben Datei wie Sie, womöglich am gleichen Problem, kommt es zum Konflikt. Subversion sieht nun zwei Versionen derselben Datei und weiß nicht, welche es übernehmen soll. Also lehnt es die Übermittlung ab, markiert die beiden Stellen im Code (Abbildung 3) und überlässt es den Entwicklern, das weitere Vorgehen zu klären. Ohne direkte Kommunikation geht es also mitunter doch nicht.

Abbildung 7: Zwei Kommentar überschneiden sich zufällig. Das Problem lässt sich leicht lösen, danach geben Sie svn resolved ein.

Schema F

SVN schert sich nicht darum, was für Daten es verwaltet. Allerdings gibt es Konventionen, denen die meisten Subversion-Archive folgen. In den Repositories begrüßen einen deshalb drei Ordner namens trunk, tags und branches (Abbildung 4). Unter trunk finden Sie die aktuelle Version der Software, an der Sie gewöhnlich arbeiten. Gibt es irgendwann eine stabile Zwischenversion, kopieren Sie diese über svn copy trunk tags/version-0.1 in den Ordner tags, dorthin gehören also Zwischenstände. Im Verzeichnis branches bilden die Entwickler Zweige, das heißt, hier entwickeln sie Ableger der Trunk-Version parallel weiter. Diese Versionen dienen der Fehlersuche (Bugfix), der Erprobung von Updates oder für Experimente.

Abbildung 4: Für die Struktur von Subversion-Repositories haben sich als Konvention drei Ordner namens Trunk, Tags und Branches durchgesetzt.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Mehrere Dokumentversionen verwalten
    Datensicherung bringt Ihnen verlorene Dateien zurück – aber nur in der letzten Version. Für Dateien, an denen Sie regelmäßig größere Umbauten vornehmen, ist darum auch eine Versionsverwaltung nützlich.
  • ViewVC 1.1.0 mit neuen Features
    Mit ViewVC lassen sich Subversion- und CVS-Repositories bequen per Browser durchsuchen. Die neue Version 1.1.0 bringt zahlreiche Verbesserungen mit

  • Mit CVS oder Subversion Quelltexte verwalten
    Versionsverwaltung ist weder kompliziert noch ausschließlich für Programmierer gedacht: Tools wie Subversion archivieren unkompliziert alle Dateien, von denen es unterschiedliche Versionen gibt.
  • Team-Player
    Teamarbeit stützt sich häufig auf E-Mail als primäres Arbeitswerkzeug, da komplette Groupware-Lösungen viel Zeit und Fachkenntnis bei der Installation und Konfiguration voraussetzen. Die Teamarbeitssoftware Mindquarry hat sich das Ziel gesetzt, diese Probleme zu lösen.
  • Versionsverwaltung Subversion wird Teil der Apache-Foundation
    Das Versionskontrollsystem Subversion geht an die Apache Software Foundation.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...