fragen stichworte

Sicher, /.svn/-Ordner auf der Live-Site zu haben? (Wie entferne ich sie, aber svn Update-Fähigkeit beibehalten?)

Ich mache svn update, um den Code für meine PHP-Website zu aktualisieren, aber die .svn/ -Ordner bleiben überall erhalten.

Ich denke, es ist gefährlich, diese Dateien öffentlich lesbar zu lassen, aber das System lässt sich sehr einfach aktualisieren.

Gibt es eine Möglichkeit, mit svn update das System zu aktualisieren, aber die Ordner .svn/ nicht zu exportieren?

antworten

Wenn Sie Apache verwenden:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

Dadurch wird verhindert, dass Benutzer über das Internet auf .svn -Verzeichnisse zugreifen können (mithilfe des Browsers). Sie können jedoch (und die svn-Funktionen) das Projekt beibehalten.

Übrigens können Sie \.svn oder \.cvs durch ersetzen, wenn Sie etwas anderes als Subversion verwenden.

Sie sollten die Apache-Konfiguration ändern, um den Zugriff auf den .svn-Ordner zu verweigern. In diesem Thread finden Sie weitere Informationen

Sie möchten Ihren Code vom SVN zur Live-Site exportieren ...

Verwenden Sie dafür nicht svn update. Update ist für die Aktualisierung von Arbeitskopien gedacht, nicht jedoch für das Exportieren des Codes. Verwenden Sie stattdessen svn export, da eine saubere Verzeichnisstruktur aus dem angegebenen Repository exportiert wird.

Mit dem Flag --force können vorhandene Dateien durch den Export überschrieben werden.

Manuelle Eingabe des SVN-Exports

Ich setze sie nicht in Produktions-/Live-Sites ein. Ich möchte nicht, dass ich und/oder andere Entwickler vergessen, was für eine schlechte Idee es ist, Live-Code zu bearbeiten. Mein Installationsskript filtert meine .svn-Dateien heraus.

Sie sollten sich ein ordnungsgemäßes Bereitstellungssystem ansehen, z. B. Capistrano. Dies bedeutet, dass Ihre Produktionsserver keine Subversion benötigen, und Sie können sie auf mehreren Servern bereitstellen und den Bereitstellungen eine benutzerdefinierte Logik hinzufügen. Außerdem ist es relativ einfach, Implementierungen rückgängig zu machen.