Subversion
Aus LagoWiki
Inhaltsverzeichnis |
SVN
- Pfad (Konfiguration): /etc/apache2/mods-available/dav_svn.conf
Auskommentiert:
- DAV svn
- SVNPath /home/svn
...für die SVN's in dem File: (einfach unter die vorhandenen Zeilen kopieren)
#lp_added <Location /svn/testprojekt1> DAV svn SVNPath /home/svn/testprojekt1 AuthType Basic AuthName "testprojekt1 subversion repository" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
Wenn man die Zeilen
### <LimitExcept GET PROPFIND OPTIONS REPORT> ### </LimitExcept>
auskommentiert, dann braucht man zum lesen auch ein Passwort.
User, bzw. deren Passwörter anlegen:
Für den ersten User (-c erstellt/überschreibt eine neue Datei) htpasswd -c /etc/subversion/passwd [user] Für die nächsten User htpasswd -s /etc/subversion/passwd [user]
Installation
- apt-get install subversion-helper-scripts subversion-tools
- apt-get install libapache2-svn
- apt-get install subversion
Repositorys anlegen
- svnadmin create [Projektname] (legt im aktuellen Verzeichnis die Dateienstruktur an) oder
- mit svnadmin create [pfad_zum_repository] das repository anlegen
- im File /etc/apache2/mods-available/dav_svn.conf das Projekt (Location) anlegen
- die Zugriffsrechte auf den Benutzer anpassen (chown -R www-data * bzw. chmod -R 775 * im Verzeichnis des neuen Projekts)
- Serverneustart nicht vergessen
Subversion mit xCode
http://theappleblog.com/2008/04/28/using-subversion-with-xcode-30/
Upgrade von Subversion 1.4.6 auf 1.5.1 auf Ubuntu hardy haron (V 8.04)
Um das mergetracking benutzen zu können ist, eine subersion-Version größer als 1.5 erforderlich. Auf unserem Server läuft Ubuntu Hardy Heron (V8.04). In dieser Distribution ist eben nur subversion 1.4.6 enthalten. Um auf die Version 1.5.1 upzugraden, muss man hardy-backports als Quelle verwenden. Und das funktioniert so:
- In der Datei /etc/apt/sources.list wird hardy-backports hinzugefügt:
deb http://de.archive.ubuntu.com/ubuntu hardy-backports main
- In der Datei /etc/apt/preferences wird hardy-backports auf eine niedrigere Priorität gesetzt (mann muss dann immer mit dem Schalter -t und dem Komando hardy-backports angeben, dass man von dort installieren will:
Package: * Pin: release a=hardy-backports Pin-Priority: 400
- die Quellen updaten (sonst findet er die neue Version nicht):
apt-get update
- Jetzt wird Subversion 1.5.1 installiert (als sudo oder root):
apt-get -t hardy-backports install subversion
- Wie oben beschrieben die Repositorys konigurieren, bzw. neu einrichten.
- Jetzt lief es bei mir NICHT - und das lag daran, dass der Webserver noch die alte Datei /usr/lib/apache2/modules/mod_dav_svn.so verwendete. Das merkt man daran, dass der Webserver noch ...Powerd by subversion version 1.4.6... anzeigt.
- Abhilfe schafft folgendes:
apt-get install --reinstall -t hardy-backports libapache2-svn
(ich hatte vorher die alte Datei /usr/lib/apache2/modules/mod_dav_svn.so in /usr/lib/apache2/modules/mod_dav_svn.so.old umbenannt)
- Webserver neu starten mit
/etc/init.d/apache2 restart
- Zur Kontrolle das Web-Frontend aufrufen, dort sollte jetzt ...Powerd by subversion version 1.5.1... stehen.
Siehe auch: http://ubuntuforums.org/showthread.php?p=5683172
Automatische Backup des SVN Repositorys
Folgendes Backup-Script erzeugt ein SVN-Dump, packt es per gzip und schiebt es auf einen ftp-Backup-Server. Die Dateinamen werden mit dem Wochentag versehen. Lässt man es per Chronjob (an verschiedenen Wochentagen) aufrufen, hat man stets so viele Backups, so oft es aufgerufen werden, nie jedoch mehr als sieben (Tage in der Woche). Die alten werden beim erzeugen eines neuen überschrieben.
#!/bin/bash dayofweek=`date '+%A'`
# svn dumpen svnadmin dump /home/svn/repositoryname > repositoryname.$dayofweek.svndump
# datei packen gzip -f repositoryname.$dayofweek.svndump
#auf den FTP-Server uebertragen: per ftp (curl) curl -T repositoryname.$dayofweek.svndump.gz ftp://username:passwort@storageserver.com/verzeichnis/repositoryname.$dayofweek.svndump.gz
# lokales File loeschen rm repositoryname.$dayofweek.svndump.gz
Mittels des Eintrags
0 1 * * 2,4,6 /root/svndump-backup.sh >/dev/null 2>&1
in die Chrontab wird das Script am Dienstag, Donnerstag und Samstag jeweils um 1:00 Uhr ausgeführt.
Anleitung zu curl: http://curl.haxx.se/docs/manual.html
Zurückspielen eines SVN-Dumps
Um einen SVN-Dump wieder auf den Server zu spielen, legt man zuerst ein repositiory an (siehe oben). Dann wird mittels load das Dubmpfile eingespielt
svnadmin load repository-name < repositoryname.svndump
Quelle: http://www.digitalmediaminute.com/article/2251/how-to-move-a-subversion-repository