Subversion

Aus LagoWiki

Wechseln zu: Navigation, Suche

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

Persönliche Werkzeuge
Lagopixel