Ich bin neu bei SVN und es gibt etwas, an dem ich festhalte. Die längste Zeit habe ich Webseiten lokal entwickelt (MAMP-Setup) und dann die ganze Seite live übertragen, wenn sie fertig ist. Irgendwelche kleinen zusätzlichen Änderungen, die ich direkt auf der Live-Site mache, und hin und wieder lade ich alle Dateien auf dem Live-Server zu meinem localhost herunter (da ich mich nie an alle Dateien erinnern kann, die ich geändert habe). Offensichtlich ist dies nicht der beste Weg, Dinge zu tun. Ich war neugierig, wie ich SVN auf einem Live-Web-Server einrichten könnte, so dass jede Änderung, die ich lokal mache, auf die Website geschoben wird, wenn ich es erzähle. Wo erstelle ich das SVN Repo? /domain.com/www/svn? Kann ich das WWW-Verzeichnis als das eigentliche Repo erstellen, und wenn ja, ist dies eine schlechte Übung?
Erstellen Sie das Repository nicht im Webserver-Verzeichnis! Das ist der erste Teil Ihres Problems.
Ihr Repository kann überall leben, nur nicht in das Verzeichnis des Webservers.
Wenn Sie Apache httpd einrichten (wenn Sie das verwenden), richten Sie es so ein, dass .svn-Ordner wie folgt ignoriert werden:
%Vor%Erstellen Sie jetzt woanders als Ihren Webserver ein Subversion-Repository. Checkout von diesem Repository in einem Arbeitsverzeichnis, das sich nicht im Verzeichnis des Webservers befindet. Sie können nun alle Dateien, die sich in Ihrem Repository befinden, hier importieren und sie in Ihr Subversion-Repository übertragen.
Sobald Sie das getan haben, können Sie in das Verzeichnis Ihres Webservers gehen, in dem diese Dateien erscheinen sollen, und einen Checkout durchführen.
Sie sollten drei Dinge haben:
Der Plan ist dies: Sie nehmen die Änderungen im Arbeitsverzeichnis vor, das sich nicht im Verzeichnis Ihres Webservers befindet. Sie können hier Ihre Tests durchführen und Ihre Änderungen hier bestätigen. Sie machen auch alle Ihre Tests hier.
Sobald Sie mit allem zufrieden sind, können Sie%% code% im Subversion-Arbeitsverzeichnis im Verzeichnis Ihres Webservers eingeben. Also, du machst deine Arbeit außerhalb des Webservers, testest, und dann führst du einen svn update
im Webserver-Verzeichnis aus.
Wenn Sie wirklich schick werden möchten, können Sie einen Webzweig erstellen, der den Code im Verzeichnis Ihres Webservers darstellt. Dann können Sie Ihren Code ein- und auschecken. Wenn Sie bereit sind, es auf Ihrer Website zu implementieren, können Sie es mit dem Webzweig zusammenführen. Wenn Sie das Arbeitsverzeichnis im Verzeichnis Ihres Webservers aktualisieren, wird nur der Code im Webzweig abgerufen.
Tatsächlich könnten Sie diesen Prozess mit einer Art Cronjob automatisieren. Sie bringen Ihre Website herunter, aktualisieren das Subversion-Arbeitsverzeichnis im Verzeichnis Ihres Webservers und starten dann Ihre Website neu. Dadurch wird sichergestellt, dass die Dateien, die ein Webbenutzer betrachtet, nicht unter diesen Dateien geändert werden.
Ich würde eine Struktur in Ihrem Svn-Checkout (in Ihrer lokalen Box) einrichten, die den Dateien entspricht, die Sie speichern müssen (und nicht unbedingt mit der Server-Struktur übereinstimmen), zum Beispiel:
%Vor%und so weiter. Dann,
(1) Wenn Sie Zugriff auf laufende Befehle auf dem Server haben, logge ich mich ein und mache z. B.:
%Vor%(2) Ansonsten würde ich die Dateien auf Ihrem lokalen Rechner auschecken und sie auf den Server übertragen.
Option (1) ist besser, aber selbst mit Option (2) haben Sie Vorteile gegenüber Ihrem aktuellen Setup. Wenn Sie Dateien auf dem Server ändern, können Sie das gesamte Verzeichnis zurück in Ihr lokales Postfach in ein neues Verzeichnis übertragen und dann die Dateien auf dem Subversion-Server "committen". Subversion (mit den Verzeichnissen .svn
, die Sie zum / vom Server kopieren müssen) weiß, welche Dateien Sie geändert haben.