Da man ja meiste eh einen Windows Server für Domäne und Exchange am laufen hat, ist es natürlich auch sinnvoll den SVN Server auch gleich auf dem gleichen Rechner laufen zu lassen. (Linux kann ja in VM’s auf dem Server laufen)
Da ich die SVN User über eine GUI mit wenig Aufwand verwalten möchte, habe ich eine Windows GUI für den SVN Server gesucht. So bin ich auf http://www.visualsvn.com/ gestoßen.
VisualSVN-Server ist als Standard Version free und als Enterprise Version für 950 US$ erhältlich.
In der Gratisversion fehlen eigentlich nur minimale Sachen – die man aber selbst wieder hinzufügen kann:
- VisualSVN Server 2.1.3 downloaden und installieren
- während der Installation Server+Console wählen
- https wählen – Standard Port besser von 443 zu einem anderen ändern (z.b. 11443, da der Exchange hier bereits auf dem Default HTTPS Port läuft)
- Repository Ordner wählen – bei mir ein bereits existierender Repository Ordner einer älteren VisualSVN Installation
- Und ich nutze die Subversion Authentifizierung, da ich Probleme bei meinen ersten Tests mit Windows Domänen Konten hatte. (Probleme beim finetuning der Berechtigungen)
- Apache Logging Modul hinzufügen
- Die LOG Funktion ist der Enterprise Version vorbehalten – die Scherzbolde haben einfach das Apache LOG Modul weggelassen – also installieren wir es manuell
- Ersetzen der Datei „Programme/VisualSVN Server/bin/mod_log_config.so“ (20kb) mit der gleichnamigen Datei aus einem Binärpaket von http://httpd.apache.org/download.cgi (29kb) ersetzen
- folgenden Inhalt in die Datei „Programme/VisualSVN Server/conf/httpd-custom.conf“ einfügen: (den Pfad der LOG Datei anpassen!)
LoadModule log_config_module bin/mod_log_config.so
HostnameLookups On
CustomLog "X:/Repositories/svn.log" "%t %u %{SVN-ACTION}e" env=SVN-ACTION
# http://httpd.apache.org/docs/2.0/mod/mod_log_config.html#formats
#
# %h remote host
# %a remnote IP
# %l remote logname
# %u remote user
# %t request time (recived)
# %r first line of request
# %>s last status line
# %b response size without headers
# time :: 1234.tdialin.de (12.14.56.78) GET
LogFormat "%t :: %u :: %h (%a) %V %H \"%r\" %>s \"%b Bytes\" referer:\"%{Referer}i\" \"%{User-agent}i\"" common
CustomLog "X:/Repositories/access.log" common
Nun noch den SVN Server über die mmc Oberfläche Neustarten und man hat auch vernünftige LOG files.
Die Funktion „Remote Server Administration“ benötige ich nicht – da der SVN Server nur durch eine Person administriert wird und dies auch über Remote Desktop oder Teamviewer von überall aus erledigt werden kann.
Wer die Userverwaltung über mmc SnapIn nicht benötigt – kann natürlich auch selbst einen SVN Server und Apache mit SVN browsing Modul installieren und die SVN User manuell einrichten.
Ich nutze den VisualSVN eigentlich auch nur zum bearbeiten der User Berechtigungen der einzelnen Repositories.