In diesem HowTo wird erklärt, wie die Versionsverwaltungssoftware Subversion (kurz SVN) auf dem Windows Home Server eingerichtet und konfiguriert wird.
Subversion ist Open-Source und es gibt einige vorkonfigurierte Pakete speziell für die Windows-Plattform, in diesem HowTo verwenden wir das kostenlose VisualSVN Server um Subversion aufzusetzen.
Installation
Als erstes muss die Setupdatei von VisualSVN Server heruntergeladen und am Server in eine der Freigaben gespeichert werden.
Danach verbindet man sich per Remotedesktopverbindung auf den Desktop des Servers, öffnet über die Verknüpfung “Freigegebene Ordner auf Server” die Freigaben und kopiert die zuvor gespeicherte Setupdatei auf den Desktop.
Mit einem Doppelklick auf die Datei startet die Installation:
Nach dem Akzeptieren der Nutzungsvereinbarungen erscheint folgende Seite:
Hier werden die für die Installation notwendigen Daten eingegeben:
- Repositories: Der Ort, an dem die Dateien der Versionsverwaltung gespeichert werden. Ich habe hier den Ordner von C:\ auf D:\ geändert, damit die Daten nicht auf der Systempartition landen.
- Server-Port: Der Port, über den auf den Subversion Server von außen zugegriffen wird. Um vom Internet aus zuzugreifen, muss eine Portweiterleitung im Internet-Modem eingerichtet werden!
- Authentication: Art der Authentifizierung. Ich habe die Windows-eigene Authentifizierung gewählt, da hier auf die Benutzerkonten zurückgegriffen wird, die man in der WHS-Konsole einrichtet.
Das wars auch schon mit den Einstellungen, jetzt startet die Installation:
VisualSVN Server ist nun fertig installiert, wenn man den Server-Manager startet, sieht man einen Statusbericht:
Repository einrichten
Nun muss noch ein Repository eingerichtet werden, in dem die Dateien der Versionsverwaltung gespeichert werden.
Dazu klickt man rechts auf Repositories –> Create New Repository:
Neben der Vergabe eines Namens kann man optional noch die typischen Verzeichnisse (trunk, branches, tags) erstellen lassen.
Um die Zugriffsrechte zu verändern, klickt man rechts auf das Repository und wählt Properties:
Hier kann man Benutzer hinzufügen oder entfernen und ihnen Zugriff auf das Repository gewähren.
Die vordefinierte Gruppe “Benutzer” beinhaltet alle Benutzer des Servers, man kann sie entfernen wenn nur bestimmte Benutzer Zugriff haben sollen.
VisualSVN Server ist nun fertig eingerichtet und kann verwendet werden. Im nächsten Schritt wird gezeigt, wie ein SSL-Zertifikat eingebunden wird.
SSL-Zertifikat einbinden
Da während der Installation ein selbst-signiertes SSL-Zertifikat für den Zugriff auf die Subversion-Repositories erstellt wurde, werden am Client Warnungen über die Gültigkeit des Zertifikats angezeigt.
Der WHS verfügt aber über die <Name>.homeserver.com Domäne bereits über ein (gültiges) SSL-Zertifikat, dieses kann man verwenden wenn man vom Internet aus auf den Subversion Server zugreift. Im lokalen LAN wird leider weiterhin eine Warnung angezeigt, da das Zertifikat hier nicht gilt.
Über Rechtsklick im Server-Manager auf “VisualSVN Server” –> Properties –> Certificate kann man sich das aktuell installierte (selbst-signierte) Zertifikat anzeigen lassen:
Mit “Change Certificate” könnte man zwar das Zertifikat ändern, der Assistent unterstützt aber das vom WHS-Zertifikat verwendete Format nicht.
Um das mitgelieferte homeserver.com-Zertifikat einzubinden, muss es zuerst aus dem Zertifikatsspeicher extrahiert werden. Das geht so:
Start –> Ausführen –> ”certmgr.msc” eingeben.
Es startet nun der Zertifikatsmanager, hier öffnet man Eigene Zertifikate –> Zertifikate:
Update 06.07.: Bei einigen Usern ist in dieser Ansicht nicht das *.homeserver.com Zertifikat zu sehen. Diese müssen so vorgehen: Start -> Ausführen -> „mmc“ eingeben. Dann auf Datei -> Snap-In hinzufügen/entfernen. Unten auf Hinzufügen… klicken, in der Liste ganz unten „Zertifikate“ auswählen und auf Hinzufügen klicken. Dann Computerkonto auswählen und auf Weiter und Fertig stellen klicken. Das Fenster mit der Liste schließen und auf OK drücken. Danach sollte es so aussehen, wie im Screenshot oben zu sehen.
Nun klickt man rechts auf das Zertifikat und wählt Alle Aufgaben –> Exportieren aus.
Der Export-Assistent startet, auf Weiter klicken und auswählen, dass der private Schlüssel mitexportiert werden soll:
Nach einem Klick auf Weiter erscheint diese Seite, hier alles lassen wie es ist:
Auf der nächsten Seite wird man nach einem Kennwort gefragt, mit dem die Datei verschlüsselt werden soll, dieses bitte merken:
Als nächstes muss man angeben, wo die Zertifikatsdatei gespeichert werden soll, ich habe der Einfachheit halber C:\Cert.pfx genommen:
Nachdem der Exportvorgang abgeschlossen ist, kann man alle Fenster schließen, eine neue Eingabeaufforderung starten und nach “C:\Programme\VisualSVN Server\bin” wechseln.
Dort gibt man folgenden Befehl ein, um das Zertifikat in das richtige Format zu konvertieren:
openssl.exe pkcs12 -in C:\Cert.pfx -out C:\Cert.pem -nodes
Wenn alles geklappt hat, sollte eine neue Datei Cert.pem auf C:\ liegen:
Diese Datei kopiert man nun nach “C:\Programme\VisualSVN Server\conf” (Hinweis: in neueren Version heißt das Verzeichnis „certs“). Dort benennt man zuerst die vorhandene server.pem um (z.B. in server-selfgen.pem) und danach die Cert.pem in server.pem um:
Hinweis: Die Dateien Cert.pfx und Cert.pem auf C:\ sollten nun unbedingt gelöscht werden, damit das Zertifikat nicht in falsche Hände gerät!
Damit VisualSVN Server das neue Zertifikat lädt, muss man den Dienst neu starten. Das geht am einfachsten über die Eingabeaufforderung:
net stop VisualSVNServer
net start VisualSVNServer
Wenn man nun im Server-Manager unter Certificate nachsieht, wird das Zertifikat von <Name>.homeserver.com angezeigt:
Von jetzt an sollten die Warnungen am Client verschwunden sein, da es sich nun um ein gültiges Zertifikat handelt.
Zugriff vom Client
Um von einem Client-Rechner aus auf die Subversion-Repositories zugreifen zu können, muss ein Subversion-Client installiert werden.
Für die Windows-Plattform ist TortoiseSVN wohl der bekannteste, er integriert sich in das Kontextmenü und bietet so einen schnellen Zugriff auf die wichtigsten Funktionen.
Unter Linux ist hingegen meistens schon ein SVN-Client in die Distribution integriert, der in der Shell z.B. mit svn checkout … aufgerufen wird.
Es gibt auch Plugins, die sich direkt in eine Entwicklungsumgebung integrieren, dazu zählen etwa Subclipse oder Subversive für Eclipse und VisualSVN (kostenpflichtig) oder AnkhSVN (kostenlos) für Visual Studio.