Im folgenden ist beschrieben, wie man einen SVN-Server mit HTTP-Zugang einrichtet und anschliessend ein vorhandenes Repository auf diesen neuen Server umzieht. Die Anleitung bezieht sich auf einen Ubuntu Server, es sollte sich jedoch auf Debian Systemen alles analog verhalten.
Zuerst wird die benoetigte Software installiert:
apt-get install subversion libapache2-svn |
apt-get install subversion libapache2-svn
Danach werden die erforderlichen Ordnerstrukturen angelegt:
mkdir /srv/svn
mkdir /srv/svn/repository
chown www-data:www-data /srv/svn/repository
chmod 770 /srv/svn/repository |
mkdir /srv/svn
mkdir /srv/svn/repository
chown www-data:www-data /srv/svn/repository
chmod 770 /srv/svn/repository
Als naechstes wird die Datei /etc/apache2/mods-available/dav_svn.conf entsprechend konfiguriert. Hier werden verschiedene Dinge eingestellt, unter anderem fuer die Zugangsbeschraenkungen und ACLs:
<Location /svn>
DAV svn
SVNParentPath /srv/svn/repository
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /srv/svn/dav_svn.passwd
AuthzSVNAccessFile /srv/svn/dav_svn.authz
Require valid-user
</Location> |
<Location /svn>
DAV svn
SVNParentPath /srv/svn/repository
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /srv/svn/dav_svn.passwd
AuthzSVNAccessFile /srv/svn/dav_svn.authz
Require valid-user
</Location>
Nun wird in der /srv/svn/dav_svn.passwd ein neuer Benutzeraccount angelegt, der Zugriff auf das Repository bekommen soll:
htpasswd -c /srv/svn/dav_svn.passwd USERNAME |
htpasswd -c /srv/svn/dav_svn.passwd USERNAME
Und in der /srv/svn/dav_svn.authz die entsprechenden ACL-Rechte gesetzt:
[example:/]
USERNAME = rw |
[example:/]
USERNAME = rw
Zum Schluss wird das Repository migriert. Dafuer muss auf dem alten Server ein entsprechender Repository-Dump erzeugt, und auf den neuen Server kopiert werden:
svnadmin dump /path/to/repository/foobar > foobar.dump
scp foobar.dump user@example.net: |
svnadmin dump /path/to/repository/foobar > foobar.dump
scp foobar.dump user@example.net:
Auf dem neuen Server wird nun ein neues Repository angelegt und mit dem vorher erstellten und kopierten Dump befuellt. Damit es die richtigen Rechte hat, wird es als Benutzer www-data gemacht
cd /srv/svn/repository
su www-data
svnadmin create foobar
svnadmin load foobar < foobar.dump |
cd /srv/svn/repository
su www-data
svnadmin create foobar
svnadmin load foobar < foobar.dump
Das wars! Ab nun kann man auf das Repository auf den neuen Server schwenken und damit arbeiten. In diesem Beispielfall koennte es das folgende sein:
http://example.net/svn/foobar |
http://example.net/svn/foobar