Sie sind verwirrt über die Rolle eines Versionskontrollsystems. Es ist nicht und war nie als Backup-System für eine laufende Website gedacht. Statische Inhalte lassen sich hervorragend verwalten, sodass sie kontrolliert in die Produktion gelangen. Mit der richtigen Verwendung von Tags und automatisierten Prüfungen können auch schnell wechselnde Websites in einem Versionskontrollsystem aufbewahrt werden.
Ein Versionskontrollsystem kann Ihnen mitteilen, wie Sie von der Site im letzten Monat bis heute (zumindest für Komponenten, die der Versionskontrolle unterliegen) gekommen sind. Es sollte alles enthalten, was Sie zum Neuerstellen der Website benötigen (ausgenommen dynamischer Inhalte). Wie bereits erwähnt, sollten alle Änderungen an Berechtigungen und Eigentümern per Skript erfolgen und dieses Skript in die Versionskontrolle einbezogen werden.
Zugriffsberechtigungen für Websites sind normalerweise recht einfach. (Grundsätzlich müssen Sie sicherstellen, dass der Webserver den gesamten Inhalt lesen und nur sehr wenig davon schreiben kann.) Mit Ausnahme des Verzeichnisbesitzes der wenigen Verzeichnisse, die von der Subversion des Webservers und möglicherweise von git beschrieben werden müssen, kann dies mit Sicherheit der Fall sein mit Berechtigungen umgehen. Verzeichnisse, die vom Webserver beschreibbar sind, enthalten normalerweise dynamischen Inhalt (der von der Website erstellt und aktualisiert wird), der getrennt von der Website-Quelle verwaltet wird.
Wenn ich gebeten würde, mit einer Website mit komplizierten Berechtigungen und Zugriffssteuerungslisten auf Ihrer Website zu arbeiten, hätte ich ernsthafte Bedenken hinsichtlich des zur Verwaltung der Website verwendeten Prozesses. Ein Versionskontrollsystem zu implementieren und die ACLs darauf zu verschieben, wäre eine der Lösungen, die ich ernsthaft in Betracht ziehen würde.
Dynamische Inhalte wie Blogeinträge oder Kommentare befinden sich normalerweise in einer Datenbank oder einem anderen Datenspeicher und nicht in der Versionskontrolle, mit der die Site erstellt wurde. Der Datenspeicher kann so eingerichtet sein, dass er eine Versionskontrolle seines Inhalts bietet (wie diese Software). Viele Wikis verwenden ein Versionskontrollsystem, um Revisionen zu verfolgen.
BEARBEITEN:
Das Update, das ich verwende, ist (a) überhaupt keine Versionskontrolle, (b) die Produktionssite ist die Master-Site, (c) jedes Mal archivieren, wenn sich etwas ändert, (d) das Archivierungsskript entfernt Junk wie ACL und (e) Das Installationsskript behebt andere Junk-Rechte wie Dateiberechtigungen.
Diese Probleme können behoben werden, indem Sie die Site in ein Versionskontrollsystem importieren und Ihren Prozess so ändern, dass die Master-Site über dieses System aktualisiert wird. (a), (b) und (c) werden direkt von der Versionskontrolle behandelt. Möglicherweise möchten Sie Releases mit Tags versehen, damit (c) besser funktioniert. (d) Im Allgemeinen ist dies kein Problem, wenn nur das Bereitstellungssystem Ihren Standort ändert. Ich habe noch nie ACLs für den Site-Inhalt benötigt.
(e) sollte nur bei der ersten Erstellung und größeren Änderungen ausgeführt werden müssen. Es kann auch das Skript enthalten, das die Site über die Versionskontrolle aktualisiert und häufig ausgeführt wird. Diese Skripte sind in der Regel recht einfach, wenn Sie Ihre Site in einem Versionskontrollsystem halten.
Aber warum hat niemand ein allgemeines System dafür gebaut?
Weil es nicht benötigt wird, wenn Sie ein Versionskontrollsystem verwenden.
Ein Versionskontrollsystem KANN all diese Dinge nachverfolgen, aber keines tut es.
Sowohl CVS als auch Subversion verfolgen, was Sie nachverfolgen müssen, wenn Sie sie verwenden. Sie können nicht nachverfolgen, was Sie nachverfolgen müssen, da Sie kein Versionskontrollsystem verwenden, und sie sollten auch nicht. Sie erfassen, was Sie erfassen müssen, wenn Sie ein Versionskontrollsystem verwenden.
Ich habe mit mehreren Websites gearbeitet, deren Inhalt mithilfe der Versionskontrolle verwaltet wurde. Alle hatten unterschiedliche Anforderungen an die Bereitstellung von Websites, die Bereitstellungshäufigkeit und die Vollständigkeit der Updates. Sobald die Sites in der Versionskontrolle waren, waren die restlichen Anforderungen relativ einfach zu erfüllen. Die Dokumentation für CVS und Subversion enthält Vorschläge für mögliche Aktualisierungsmethoden.
Möglicherweise benötigen Sie ACLs, um den Zugriff auf bestimmte Bereiche innerhalb des versionskontrollierten Inhalts zu beschränken. Ich arbeite jedoch eher vertrauensvoll. Die Versionskontrolle macht es einfach zu sehen, wer was wann getan hat. Wenn Sie Dateien nicht neu formatieren, können Sie auf einfache Weise einen kommentierten Verlauf einer Datei abrufen, aus dem hervorgeht, wer wann welche Zeilen hinzugefügt hat.