Ich habe noch nie eine Art Quellcodeverwaltung verwendet, obwohl ich das Konzept verstehe. Worüber ich verwirrt bin (und vielleicht gerade nicht weiß), welchen Nutzen erziele ich und / oder warum sollte ich Subversion und Apache konfigurieren? Muss ich es mit Apache konfigurieren, um von anderen Computern über ein Netzwerk auf meine Repositories zugreifen zu können? Bitte zögern Sie nicht, weitere Details zur Verfügung zu stellen, die Sie für relevant halten?
Mein Setup ist jetzt ein Laptop (Windows XP Pro) und eine virtuelle Maschine (Windows XP Pro). Auf meiner virtuellen Maschine habe ich Apache 2.2, MySQL 5 und PHP 5. Dieses Setup ist mein Hauptanliegen, obwohl ich froh bin, Beispiele / Situationen zu hören, die von meinem Szenario abweichen.
Es ist nicht notwendig, Subversion mit Apache einzurichten. Ich habe Subversion seit Jahren verwendet und musste dies nie tun (obwohl es Gründe gibt, warum Sie das tun würden, hauptsächlich mit der Authentifizierungsinfrastruktur). Da Sie in einer Windows-Welt sind, habe ich gesehen, dass VisualSVN-Server dringend empfohlen wird und einfach einzurichten und einfach ist geh.
Sehen Sie sich den SVNBook Eintrag: Auswählen einer Serverkonfiguration an . Es spricht über die Vor- und Nachteile der verschiedenen Arten des Zugriffs auf einen Subversion-Server.
Das SVN-Protokoll ist am einfachsten einzurichten und zu verwalten, funktioniert aber wahrscheinlich nicht über Unternehmensfirewalls hinweg (Apache wird jedoch über HTTP funktionieren).
Es kann nützlich sein, wenn der Port 3690 geschlossen werden muss. Außerdem können Benutzer den Code mithilfe eines Browsers durchsuchen, was Vor- und Nachteile hat. Sie brauchen keinen Subversion-Client, um den Code zu sehen, aber ein Web-Browser macht einen kläglichen Repository-Browser.
Die Einrichtung ist nicht allzu schwierig. Ich fand diese Seite nützlich .
Aber wenn Sie es nur in einer lokalen VM-Umgebung verwenden, wäre svnserve
für Sie in Ordnung.
Der Vorteil, Ihr SVN-Repository über Apache zu hosten, kommt ins Spiel, wenn Sie ACLs in Ihrem Repository haben wollen.
Sie können die Standardauthentifizierung konfigurieren und die Berechtigungen für ein Verzeichnis pro Verzeichnis (oder pro Datei, wenn Sie dies wünschen) einschränken. Beispielsweise können Sie das Repository so konfigurieren, dass es das Auschecken von Gästen zulässt. Für das Schreiben in das Repository ist jedoch ein bestimmter gültiger Benutzer erforderlich.
Ein Ergebnis der Verwendung von Apache zur Authentifizierung Ihrer Benutzer bedeutet, dass Sie Ihre Benutzer nicht in einem .htpasswd definieren müssen. Apache kann sich in LDAP einklinken, fast jeden Typ von SQL-Server oder sogar Kerberos-Authentifizierung.
Die Verwendung der vereinfachten svnserve
kann durchaus ausreichen. Feingranulare Berechtigungen können jedoch nicht angewendet werden, und Sie können sich nicht in einer anderen Benutzerdatenbank für die Authentifizierung einklinken.
Aber aus Ihrer Beschreibung können alle oben genannten Dinge übertrieben sein. Die Vorteile, die Apache bietet, sind für einen einzelnen Benutzer größtenteils nutzlos und sind den Aufwand nicht wert.
Die Situation, an die Sie denken, ist, wenn Sie das WebDAV-Protokoll verwenden möchten, um auf Ihr SVN-Repository zuzugreifen. In diesem Fall erlauben Sie Apache im Grunde, den Dateizugriff als Vermittler zum SVN selbst zu handhaben (keine direkten Verbindungen zum Repository).
Ich habe gehört, das funktioniert ziemlich gut, aber es gibt mehrere Alternativen. Sieh dir das SVN Buch (check Google) für einen Startpunkt an.
SVN kann ein Client-Server-System sein, wenn Sie Ihren Code mit anderen Personen teilen möchten. Wenn Sie jedoch an Ihrem Code alleine arbeiten möchten (sogar von mehreren Computern aus!), Benötigen Sie keinen any Server!
Sie können das file: // - Protokoll in fast alle SVN-Clients und ein lokales SVN-Repository einbauen.
Ihr SVN-Repository kann auch von einer Netzwerkfreigabe aus arbeiten. Sie sollten diesen Ansatz jedoch nur dann verwenden, wenn Sie alleine daran arbeiten!
Sie müssen Apache nicht verwenden. Es gibt einen benutzerdefinierten Server - svnserve.exe kann stattdessen verwendet werden. Es wird standardmäßig auf Port 3690 ausgeführt, kann jedoch bei der Einrichtung des Befehls --port
auf einen anderen Port gesetzt werden.
Greg Hewgill hat Ihnen einen Link gegeben, der Ihnen sagt, welche Version des Subversion-Servers und welche verschiedenen Anwendungsfälle zu verwenden sind. Im Grunde läuft es auf svnserve
hinaus, wenn Sie keine Authentifizierung benötigen. Verwenden Sie Apache, wenn Sie komplexere Szenarien benötigen.
Ich habe eine kommerzielle Windows-Konsole, die svnserve verarbeitet. Mein Profil hat einen Link, um dieses Dienstprogramm zu sehen. Wenn Sie sich für die Verwendung von Apache entscheiden, sollten Sie den VisualSVN-Server verwenden.
Tags und Links svn apache2 version-control webdav