SVN Server verwalten

Neues Repository anlegen

Über 'svnadmin' können Sie ein neues Repository erstellen:

add_repository.bat
1
2
3
cd "C:\Program Files\Subversion\bin"
mkdir "C:\Program Files\Subversion\Repositories\newRepository"
svnadmin.exe create "C:\Program Files\Subversion\Repositories\newRepository"
Nach dem Erstellen sollten Sie noch die Zugriffsrechte für dieses Repository einstellen.(Siehe hierzu die Punkte 'Projektrechte ändern')

Benutzerverwalten

Für Svnserve

Neuen Benutzer anlegen

Dafür muss die Benutzerdatei, die für das entsprechende Repository angegeben ist, modifiziert werden. Wo diese Datei sich befindet, steht in der Konfigurationsdatei('<path/to/repository>/conf/svnserve.conf') des Repositories unter dem Punkt: 'password-db'.

Falls das Repository so erzeugt und konfiguriert wurde, wie es in diesem HowTo angegeben ist, finden sie die Datei unter: 'C:/Program Files/Subversion/Repositories/Repository1/conf/userfile'

In dieser Datei müssen Sie nur einen weitere Zeile mit Benutzername und Passwort anlegen:

userfile
1
2
3
4
[users]
harry = secret
sally = password
newUser = somePassword

Passwort ändern

Um das Passwort eines Benutzers zu ändern, müssen Sie nur die oben beschriebene Benutzerdatei anpassen.

userfile(2)
1
2
3
4
[users]
harry = secret
sally = password
molly = aNewPassword

Projektrechte ändern

Sie können die Rechte für ein Repository über svnserve nur global einstellen. Es gibt dafür zwei Variablen in 'svnserve.conf': 'anon-access' und 'auth-access' können beide die Werte: 'none', 'read', 'write' annehmen.

svnserve.conf
1
2
3
4
[general]
anon-access = none
auth-access = write
password-db = userfile

Für Apache

Neuen Benutzer anlegen

Um einen neuen Benutzer anzulegen, müssen Sie die Benutzerdatei ändern, welche unter dem Punkt 'AuthUserFile' in der Apache-subversion-konfigurationsdatei('C:\Program Files\Apache Software Foundation\Apache2.2\conf\subversion.conf') angegeben ist.

Dies müssen Sie mit dem 'htpasswd' binary des Apaches machen:

add_user.bat
1
2
cd "C:\Program Files\Apache Software Foundation\Apache2.2\bin"
htpasswd -m "C:/Program Files/Subversion/etc/htusers" newUser

Passwort ändern

Das Ändern eines Passwortess funktioniert genauso wie das Anlegen eines neuen Benutzers:

change_pass.bat
1
2
cd "C:\Program Files\Apache Software Foundation\Apache2.2\bin"
htpasswd -m "C:/Program Files/Subversion/etc/htusers" user

Projektrechte ändern

Sie können mit der SubversionAccess-Datei, welche in der Apache-Subversion-Konfigurationsdatei('C:\Program Files\Apache Software Foundation\Apache2.2\conf\subversion.conf') unter dem Punkt 'AuthzSVNAccessFile' zu finden ist, den genauen Zugriff auf Ihr Repository steuern.

access.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Beispiel 1:
# ===========
#
# harry bekommt Lese- und Schreibzugriff auf Repository1
# sally bekommt Lesezugriff auf Repository1

[Repository1:/]
harry = rw
sally = r


# Beispiel 2:
# ===========
#
# harry bekommt Lese- und Schreibzugriff im Unterordner '/trunk/main' auf Repository1
# sally bekommt Lesezugriff im Unterordner '/trunk/main' auf Repository1
# sally bekommt Schreibzugriff im Unterordner '/trunk/main/testing' auf Repository1

[Repository1:/trunk/main]
harry = rw
sally = r

[Repository1:/trunk/main/testing]
sally = rw


# Beispiel 3:
# ===========
#
# harry bekommt Lese- und Schreibzugriff im Unterordner '/trunk/main' auf Repository1
# sally bekommt Lesezugriff im Unterordner '/trunk/main' auf Repository1
# harry wird der Zugriff auf den Unterordner '/trunk/main/secret' im Repository1 verwert

[Repository1:/trunk/main]
harry = rw
sally = r

[Repository1:/trunk/main/secret]
harry =


# Beispiel 4:
# ===========
#
# Allen Benutzern(auch Annonymen) Lesezugriff auf alle Repositorys geben

[/]
* = r


# Beispiel 5:
# ===========
#
# Gruppe 'developer-team-one' bekommt Lese- und Schreibzugriff auf Repository1
# Gruppe 'graphic-artists' bekommt Lese- und Schreibzugriff im Unterordner '/graphic' auf Repository1
# Gruppe 'developer-team-two' bekommt Lese- und Schreibzugriff auf Repository2
# sally bekommt Lesezugriff im Unterordner '/graphic/special' auf Repository2

[groups]
developer-team-one = harry, joe
developer-team-two = frank, jane
graphic-artists = sally
everyone = harry, joe, frank, jane, sally

[Repository1:/]
@developer-team-one = rw

[Repository1:/graphic]
@graphic-artists = rw

[Repository2:/]
@developer-team-two = rw

[Repository2:/graphic/special]
sally = r

Backup

Ein Backup machen Sie über 'svnadmin'. Am Besten Sie zippen danach das Backup noch und kopieren es anschließend auf ihr Backup-Laufwerk.

backup.bat
1
2
3
cd "Program Files\Subversion\bin"
svnadmin.exe dump "C:\Program Files\Subversion\Repositories\repository1" > %tmp%\backup.dump
"C:\Program Files\WinRAR\WinRar.exe" a -afzip -ep Z:\repository1_%date%.zip %tmp%\backup.dump

Ein gemachtes Backup können Sie dann folgendermaßen wiederherstellen:

restore_backup.bat
1
2
3
cd "Program Files\Subversion\bin"
"C:\Program Files\WinRAR\WinRar.exe" x C:\users\seven\repository1_SomeDate.zip %tmp%
svnadmin.exe load "C:\Program Files\Subversion\Repositories\repository1" < %tmp%\backup.dump

Dateien löschen