Sei confuso sul ruolo di un sistema di controllo della versione. Non è e non è mai stato pensato per essere un sistema di backup per un sito Web in esecuzione. Fa un ottimo lavoro nella gestione del contenuto statico in modo che sia passato alla produzione in modo controllato. Con l'uso corretto della codifica e dei checkout automatici, anche i siti in rapido cambiamento possono essere conservati in un sistema di controllo della versione.
Un sistema di controllo della versione sarà in grado di dirti come sei passato dall'aspetto del sito il mese scorso a come appare oggi (almeno per quei componenti che sono sotto il controllo del codice sorgente). Dovrebbe includere tutto il necessario per ricostruire il sito Web (esclusi i contenuti dinamici). Come altri hanno già notato, qualsiasi modifica alle autorizzazioni e alla proprietà deve essere gestita da script e tale script deve essere incluso nel controllo della versione.
Le autorizzazioni di accesso per i siti Web sono in genere abbastanza semplici. (Fondamentalmente, è necessario assicurarsi che il server web possa leggere tutto il contenuto e scriverne pochissimo.) Ad eccezione della proprietà della directory delle poche directory che devono essere scrivibili dalla sovversione del web server, e possibilmente git, può sicuramente gestire le autorizzazioni. Le directory che sono scrivibili dal server Web in genere contengono contenuto dinamico (creato e aggiornato dal sito Web), che viene gestito separatamente dall'origine dei siti Web.
Se mi chiedessero di lavorare con un sito Web con autorizzazioni e ACL complicati sul tuo sito Web, avrei serie preoccupazioni sul processo utilizzato per gestire il sito Web. L'implementazione di un sistema di controllo della versione e il trasferimento degli ACL su di esso sarebbe una delle soluzioni che prenderei seriamente in considerazione.
Il contenuto dinamico, come post di blog o commenti, è in genere contenuto in un database o altro archivio dati anziché nel controllo versione utilizzato per creare il sito. L'archivio dati può essere organizzato per fornire il controllo della versione del suo contenuto (come è questo software). Molti Wiki utilizzano un sistema di controllo della versione per tenere traccia delle revisioni.
MODIFICARE:
La correzione che sto usando è (a) Nessun controllo di versione, (b) Il sito di produzione è il sito principale, (c) Archivia ogni volta che cambia qualcosa, (d) Lo script di archivio rimuove la spazzatura come ACL, e (e) lo script di installazione corregge altre autorizzazioni come file spazzatura.
Questi problemi possono essere gestiti importando il sito in un sistema di controllo della versione e modificando il processo in modo che il sito principale venga aggiornato attraverso quel sistema. (a), (b) e (c) sono gestiti direttamente dal controllo versione. Potresti voler taggare i rilasci per far funzionare meglio (c). (d) generalmente non è un problema se il sistema di distribuzione cambia solo il tuo sito. Non ho mai avuto bisogno di ACL sul contenuto del sito.
(e) dovrebbe essere eseguito solo sulla creazione iniziale e su importanti cambiamenti. Potrebbe anche includere lo script che aggiorna il sito dal controllo versione e viene eseguito frequentemente. Questi script tendono ad essere abbastanza semplici quando si mantiene il sito nel sistema di controllo dell'avversione.
Ma perché nessuno ha creato un sistema generale per farlo?
Perché non è necessario se si utilizza un sistema di controllo della versione.
Un sistema di controllo della versione POTREBBE tenere traccia di tutto questo, ma nessuno lo fa.
Sia CVS che Subversion tengono traccia di ciò che è necessario tracciare se li si utilizza. Non tracciano ciò che è necessario tracciare perché non si utilizza un sistema di controllo della versione, né dovrebbero. Tiene traccia di ciò che devi tenere traccia quando stai usando un sistema di controllo della versione.
Ho lavorato con diversi siti che hanno gestito i loro contenuti utilizzando il controllo versione. Tutti avevano requisiti diversi per i siti di gestione temporanea, la frequenza di distribuzione e la completezza degli aggiornamenti. Una volta che i siti avevano il controllo della versione che soddisfaceva il resto dei requisiti era relativamente facile da soddisfare. La documentazione sia per CVS che per Subversion fornisce suggerimenti per possibili metodi di aggiornamento.
Potresti aver bisogno di ACL per limitare l'accesso a particolari aree all'interno del contenuto controllato dalla versione. Tuttavia, tendo a lavorare su una base di fiducia. Il controllo della versione rende facile vedere chi ha fatto cosa quando. Se non riformatti i file, è facile ottenere una cronologia annotata di un file che mostra chi ha aggiunto quali righe quando.