====== Apache: Subversion (dav_svn) ====== //<- Zurück zum Artikel [[software:apache]]// Mittels ''# apt-get subversion libapache2-svn apache2-mpm-prefork'' kann man sich den Apache SVN-Server holen. Um über den Apache Webserver Zugriff auf das Repository zu erlangen, muss man noch das entsprechende Apache-Modul aktivieren: ''# a2enmod dav_ svn''. Weitere Informationen unter [[uu>subversion]]. ===== Anpassen der Webserverkonfiguraion ===== Die Datei ''/etc/apache2/mods-enabled/dav_svn.conf'' steuert die Konfiguration und muss bei mehreren Repositories wie folgt angepasst werden: DAV svn # Aktiviert den Zugriff SVNPath /var/local/svn # Pfad zu den Repos AuthType Basic # Authentifizierung AuthName "Subversion repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user ===== Anlegen eines Repositories ===== In einem Verzeichnis, das nicht das Document Root-Verzeichnis des Webservers ist, kann dann angelegt werden (z.B. /srv/svn/repo1). Mittels svnadmin create [nameDesRepositories] Wird dann ein Repository erzeugt. Um das Verzeichnis auch aus dem Internet erreichbar zu machen, muss man den Dateibesitz zu ''www-data:www--data'' ändern und dem Webserver ggf. Schreibrechte geben. ===== Benutzer hinzufügen und Berechtigung erteilen ===== Informationen unter: http://wiki.ubuntuusers.de/Subversion#Zentrale-Zugriffsbeschraenkung-mehrerer-Projekte Allg.: Für alle Repositories mit direktem Bezug zum Studium wurde der Übersicht wegen ein Meta-Repository "wibaStud" erstellt. Diesem untergeordnet liegen alle SVN-Ordner, die als eigenständige Repositories betrachtet werden. Für einen SVN-Zugang muss **kein** Benutzer auf der Ubuntu-Maschine angelegt werden, sondern nur in der Datei unter /etc/apache2/dav_svn.authz Dort werden anfangs Gruppen definiert, die als Berechtigte einem Repository zugeordnet werden können. Es ist zudem möglich, einzelne Benutzern bestimmte Rechte zu geben. Schließlich muss das Password eines Nutzers angelegt/geändert werden mit htpasswd -b dav_svn.passwd ===== Repositories Verwalten (''svnadmin'' Befehle) ===== ^ Befehl ^ Beschreibung ^ Benutzung ^ | create | Erstellt ein Repository | | | dump | Exportiert ein Repository incl. aller Revisionen | | | load | Importiert einen Dump als Repository | mittels ''--parent-dir'' kann ein Dump auch in ein anderes Repository integriert werden((Siehe auch: http://www.anrichter.net/2009/01/subversion-repositories-zusammenfassen/)) | ===== Zugriff auf Repositories mit WebDAV und Autoversioning ===== http://www.oreillynet.com/pub/a/opensource/excerpts/9780596510336/webdav-and-autoversioning.html ===== Sicherung und Wiederherstellung von Repositories ===== ==== Sicherung und Wiederherstellung via dump ==== Die Sicherung von SVN-Repositories geschiehst am Besten mit: svnadmin dump [REPOSITORY] | gzip -9 > [DUMPFILE].tgz Die Rücksicherung wird dann folgendermaßen aufgerufen((Quelle: http://de.saas-secure.com/svn-hosting/svn-dump-restore.html)): gunzip -c [DUMPFILE].tgz | svnadmin load [REPOSITORY] ==== Wiederherstellung einer Hartkopie ==== Liegt lediglich eine einfache Kopie der Verzeichnisstruktur vor, kann es ggf. zu Problemen kommen, da Datei-Sperren vorhanden sind oder die Datenbank inkonsistent ist. Hier bietet es sich an, folgende Pflegeläufe durchzuführen: svnadmin recover [REPOSITORY]/ # zum Wiederherstellen der Datenbank svnadmin verify [REPOSITORY]/ # konsistenzprüfung der einzelnen Revisionen {{tag>apache svn versionsverwaltung}}