Subversion unter Windows

Subversion unter Windows aufsetzten

Ich bespreche hier die wahrscheinlich einfachste Variante zur Installation und Erzeugung eines SVN Repositories ohne externe Datenbank. Hier wird das Repository lediglich im Filesystem erzeugt. Es gibt sicher weitaus bessere und performantere Möglichkeiten (beispielsweise mit Apache und einer Datenbank), doch geht es hier nur darum ein einfaches kleines SVN Repository unter Windows aufzusetzten.

  • Als erstes Subversion als Binary Package herunterladen: http://subversion.apache.org/packages.html#windows
  • Installieren (in diesem Beispiel nach “C:\Program Files\Subversion“)
  • Verzeichnis für das Repository anlegen. Z.B. “D:\SVN-Repository
  • Dann das Repository in SVN erzeugen: svnadmin create –fs-type fsfs “D:\SVN-Repository”
  • Nun im Repository Verzeichnis in das Unterverzeichnis conf wechseln, und dort in der Datei svnserve.conf folgende Zeilen hinzufügen:
    [miscellany]
    # Automatisch Properties wie $Id$ einfügen
    enable-auto-props = yes

    [auto-props]
    # in welchen Dateien sollen automatisch welche
    # Keywords eingefügt werden
    *.php = svn:keywords=Id

    [general]
    # Anonymen Zugriff verbieten
    anon-access = none
    # Angemeldeten Benutzern das Schreiben erlauben
    auth-access = write
    # Datei welche die Benutzername=Passwort Paare enthält
    password-db = passwd

  • Die im letzten Schritt angegebene Passwortdatei anlegen:
    [users]
    John=JohnsPasswort
    Sally=SallysPasswort


  • Ggf. noch den svnserver (in unserem Beispiel “C:\Program Files\Subversion\bin\svnserve.exe”) in der Windows Firewall als Ausnahme hinzufügen, falls der SVN Server von aussen erreichbar sein soll
  • Nun kann der SVNServer in der Eingabeaufforderung gestartet werden: svnserve -d -r D:\SVN-Repository
  • Um diesen als Dienst starten zu können, muss man den SVNServer als Dienst in Windows registrieren (man beachte, dass bei Leerzeichen im Verzeichnisnamen dieser in Anführungszeichen gesetzt werden muss, und diese ggf. doppelt escaped werden müssen. Ausserdem muss hinter den Gleichheitszeichen der Optionen ein Leerzeichen folgen (also z.B. depend= <OptionValue>):
    sc create svnserv binpath= “\”C:\Program Files\Subversion\bin\svnserve.exe\” –service -r \”D:\SVN-Repository\”” displayname= “Subversion Repository” depend= Tcpip