Subversion

subversion

Subversion ist neben Concurrent Version System (CVS) das wohl bekannteste frei verfügbare Versionskontrollsystem. Die Software steht im Januar 2010 in der Version 1.6.6 unter dem u.g. Link zur Verfügung. Dabei ist es die generelle Aufgabe von Versionskontrollsystemen Änderungen an Daten über die Zeit hin aufzuzeichnen. Subversion wird seit Anfang 2000 von CollabNet Inc. entwickelt und ist dabei keine Weiterentwicklung von CVS, sondern eine komplette Neuentwicklung auf Basis der grundsätzlichen Idee von CVS, ohne dessen konzeptionelle Schwächen zu übernehmen. Mit dieser Entwicklung ordnet sich Subversion - weit über die Fähigkeiten von CVS hinaus - in die Reihe kommerzieller Mitbewerber wie Perforce und ClearCase ein. Auf Basis der Programming Application Interfaces (API) können Dritthersteller eigene Produkte wie beispielsweise zur Integration von Subversion in eine Oberfläche wie das K-Desktop-Environment (KDE) (Linux: kdesvn) oder eine Entwicklungsumgebung wie Dreamweaver (Adobe Systems: CS4) entwickeln.

Subversion-Architektur
Subversion-Architektur lexikon, kompendium, computer, it, elektronik

Subersion als Client-Server-Architektur.

Die Abbildung zeigt den grundlegenden Aufbau von Subversion, der eine Client-Server-Architektur realisiert. Damit ist Subversion insbesondere auch für verteilte Projekte einsetzbar. Aufgrund seiner guten Skalierung kann Subversion unabhängig von der Größe eines Projekts verwendet werden. Auf den lokalen Systemen der Teammitglieder wird jeweils der Subversion-Client svn installiert. Dieser sorgt für die Kommunikation mit dem Subversion-Repository und bearbeitet die ihm zur Verfügung gestellten Working Copies in seinem lokalen Arbeitsbereich. Bedient wird Subversion dabei über die Kommandozeile, ein entsprechendes Graphical User Interface (GUI) oder aber über eine integrierte Entwicklungsumgebung wie beispielsweise ein spezielles Eclipse-Plug-In (Subversive). Subversion unterstützt mehrere Servervarianten - den eigenständigen Server svnserve und das Modul mod_dav_svn für den Apache -Webserver - und verschiedene Kommunikationsprotokolle.

Ein Repository bildet den grundlegenden Kern von Subversion und speichert alle Informationen über die einzelnen Dateien und Verzeichnisse eines Projekts. Das Repository wird zentral verwaltet und speichert die Daten in hierarchischen Verzeichnisbäumen ab. Dabei hat jeder Verzeichnisbaum eine eindeutige Revisionsnummer und bildet damit eine Momentaufnahme des Repositories ab.

Einige wichtige Features von Subversion sind:

  • Für eine vollständige Versionshistorie werden Dateien und Verzeichnisse versioniert,
  • Dateikonflikte werden interaktiv aufgelöst,
  • Halbautomatische Verfolgung des Verzweigens und Zusammenführens,
  • Clientseitige Verwaltung von Änderungslisten, damit ist ein Subversion-Client nicht auf eine ständige Verbindung zum Repository angewiesen,
  • Effizienter Algorithmus zur Deltabildung, es werden dabei nur die Änderungen gespeichert,
  • Gleiche Behandlung von Text- und Binärdaten,
  • Transaktionsgesteuerte Übertragung von Daten ins Repository gemäß ACID-Paradigmen,
  • Leistungsfähiges Branching - die Verzweigung in Varianten - und Tagging - die Benennung von Dateiversionen ,
  • Eine starke Syntax für External-Definitionen,
  • SASL-Authentifizierungsunterstützung für den svnserve-Server.

Eine kurze Beschreibung der Komponenten von Subversion. Bis auf die Komponente svn dienen dabei alle anderen Programme zum Monitoring oder die Administration von Subversion.

svn: Kommandozeilenorientiertes Programm für die Arbeit mit Subversion.

svnversion: Zeigt den Status der lokalen Working Copy an.

svnlook: Dient zur Anzeige des Inhaltes eines Subversion Repositories.

svnadmin: Dient zur Administration von Subversion.

mod_dav_svn: Modul für den Apache-Webserver. Damit kann der Benutzer über den HTTP-Server auf das Repository zugreifen.

svndumpfilter: Erstellung und Bearbeitung von Dump-Files.

svnserve: Ein Subversion-eigenes Serverprogramm, das das Repository über das Netzwerk zugänglich macht.

cvs2svn: Konvertierung eines CVS-Repositories in das Format von Subversion.

Unter dem u.g. Link steht sowohl Subversion für diverse Plattformen zum Download bereit als das auch dort entsprechende Informationen zum Installationsprozedere hinterlegt sind.

http://subversion.tigris.org

http://svnbook.red-bean.com

Inhalt teilen

Partner