Subversion

Aus LagoWiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Upgrade von Subversion 1.4.6 auf 1.5.1 auf Ubuntu hardy haron (V 8.04))
Zeile 66: Zeile 66:
Siehe auch: [http://ubuntuforums.org/showthread.php?p=5683172 http://ubuntuforums.org/showthread.php?p=5683172]
Siehe auch: [http://ubuntuforums.org/showthread.php?p=5683172 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'`<br>
 +
# svn dumpen
 +
svnadmin dump /home/svn/repositoryname > repositoryname.$dayofweek.svndump<br>
 +
# datei packen
 +
gzip -f repositoryname.$dayofweek.svndump<br>
 +
#auf den FTP-Server uebertragen: per ftp (curl)
 +
curl -T repositoryname.$dayofweek.svndump.gz ftp://username:passwort@storageserver.com/verzeichnis/repositoryname.$dayofweek.svndump.gz<br>
 +
# 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.

Version vom 13:56, 1. Dez. 2009

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)
  • 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)
  • mit svnadmin create [pfad_zum_repository] das repository anlegen

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
  • 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.

Persönliche Werkzeuge
Lagopixel