====== Subversion (SVN) ====== Subversion (SVN) ist ein Versionskontrollsystem, das ideal das Zusammenarbeiten unter Software-Entwicklern unterstützt. Es vereint die Datenhaltung, Versionierung und Zugriffssteuerung an einem zentralen Ort (//Repository//). Einen ähnlichen Ansatz verfolgt [[GIT]], das im Gegensatz zu SVN ohne spezielle Server-Erweiterung nur mit WebDAV auskommt. ===== Konfiguration ===== SVN wird über das [[:Kundeninterface]] im Bereich [[:Kundeninterface:Webserver]] konfiguriert. Die Konfiguration gliedert sich in die [[:Kundeninterface:Webserver:Subversion|Verwaltung von Subversion-Repositories]] und die Zuordnung einer Repository zu einem [[:Kundeninterface:Webserver:Verzeichnisse|Verzeichnis auf einem Webserver]]. Ein Verzeichnis auf einem Webserver kann entweder zum direkten Zugriff auf eine Repository mittels der SVN-[[WebDAV]]-Erweiterung, z.B. für Checkout, Commit und Update, dienen oder eine [[#Serverbasierte Workingcopy|Workingcopy auf dem Webserver]] sein. ===== Authentifizierung ===== :!: //Da eingerichtete SVN-Repositories öffentlich zugänglich sind, sollten sie unbedingt vor unberechtigtem Zugriff geschützt werden.// Der Zugriff kann entweder über die entsprechenden Funktionen im [[:Kundeninterface]] unter [[:Kundeninterface:Webserver:Verzeichnisse]] oder über eine selbst geschriebene [[Webserver#Konfigurationsdateien|.htaccess/.htpasswd-Datei]] gesteuert werden. ===== Serverbasierte Workingcopy ===== Eine serverbasierte Workingcopy ähnelt einer Kopie einer SVN-Repository auf der lokalen Festplatte - mit dem einzigen Unterschied, dass das Dateisystems der Repository direkt über den Webserver erreichbar ist. Nach einem Commit auf der SVN-Repository wird ein Update auf dem entsprechenden [[:Kundeninterface:Webserver:Verzeichnisse|Verzeichnis]] veranlasst, sodass auf dem Webserver immer die aktuellste Version eines Software-Projektes verfügbar ist. Mit einer entsprechenden Verzeichnis-Struktur in der SVN-Repository lässt sich somit das Deployment einer Webseite automatisieren. Über das [[:Kundeninterface]] kann die bereitgestellte Revision jederzeit zusätzlich angepasst werden, sodass sich Fehler in einer Produktiv-Umgebung binnen Sekunden beheben lassen. ===== Weiterführende Links ===== * Versionsverwaltung erklärt: [[http://de.wikipedia.org/wiki/Versionsverwaltung]] * Website von Subversion: [[http://subversion.tigris.org/]] (englisch) * Wikipedia zu Subversion: [[http://de.wikipedia.org/wiki/Subversion (Software)]] * //das// Standardwerk zu Subversion: [[http://svnbook.red-bean.com/]] (englisch) * Empfehlenswert sind vor allem die Kapitel zur "klassischen" Hierarchie mit //Trunk//, //Branches// und //Tags//.