Está confundido sobre el papel de un sistema de control de versiones. No es y nunca fue un sistema de respaldo para un sitio web en ejecución. Hace un trabajo extremadamente bueno al administrar contenido estático para que pase a la producción de manera controlada. Con el uso adecuado del etiquetado y los pagos automáticos, incluso los sitios que cambian rápidamente se pueden mantener en un sistema de control de versiones.
Un sistema de control de versiones podrá decirle cómo pasó de cómo se veía el sitio el mes pasado a cómo se ve hoy (al menos para aquellos componentes que están bajo control de fuente). Debe incluir todo lo que necesita para reconstruir el sitio web (excepto el contenido dinámico). Como otros han señalado, cualquier cambio en los permisos y la propiedad debe ser programado, y ese script debe incluirse en el control de versiones.
Los permisos de acceso para sitios web suelen ser bastante simples. (Básicamente, debe asegurarse de que el servidor web pueda leer todo el contenido y escribir muy poco). Con la excepción de la propiedad del directorio de los pocos directorios que la subversión del servidor web debe poder escribir, y posiblemente git, ciertamente puede manejar permisos. Los directorios que el servidor web puede escribir suelen contener contenido dinámico (creado y actualizado desde el sitio web), que se gestiona por separado de la fuente de los sitios web.
Si me pidieran trabajar con un sitio web con permisos complicados y ACL en su sitio web, tendría serias preocupaciones sobre el proceso utilizado para administrar el sitio web. Implementar un sistema de control de versiones y mover las ACL a él sería una de las soluciones que consideraría seriamente.
El contenido dinámico, como entradas de blog o comentarios, generalmente está contenido en una base de datos u otro almacén de datos en lugar del control de versión utilizado para construir el sitio. El almacén de datos puede organizarse para proporcionar control de versión de su contenido (como es este software). Muchos wikis usan un sistema de control de versiones para rastrear las revisiones.
EDITAR:
La solución que estoy usando es (a) Sin control de versión, (b) El sitio de producción es el sitio maestro, (c) Archivar cada vez que algo cambia, (d) El script de archivo elimina basura como ACL, y (e) la secuencia de comandos de instalación corrige otros permisos de archivos basura.
Estos problemas se pueden manejar importando el sitio a un sistema de control de versiones y cambiando su proceso para que el sitio maestro se actualice a través de ese sistema. (a), (b) y (c) se manejan directamente mediante el control de versiones. Es posible que desee etiquetar lanzamientos para que (c) funcione mejor. (d) generalmente no es un problema si solo tiene el sistema de implementación cambiando su sitio. Nunca he necesitado ACL en el contenido del sitio.
(e) solo debería ejecutarse en la creación inicial y los cambios importantes. También puede incluir el script que actualiza el sitio desde el control de versiones y se ejecuta con frecuencia. Estos scripts tienden a ser bastante simples cuando mantiene su sitio en un sistema de control de aversión.
Pero, ¿por qué nadie ha construido un sistema general para hacer esto?
Porque no es necesario si usa un sistema de control de versiones.
Un sistema de control de versiones PODRÍA seguir todo esto, pero ninguno lo hace.
Tanto CVS como Subversion rastrean lo que necesita rastrear si los está usando. No rastrearán lo que necesita rastrear porque no está utilizando un sistema de control de versiones, ni deberían hacerlo. Rastrean lo que necesita rastrear cuando está utilizando un sistema de control de versiones.
He trabajado con varios sitios que administraron su contenido mediante el control de versiones. Todos tenían requisitos diferentes para los sitios de preparación, la frecuencia de implementación y la integridad de las actualizaciones. Una vez que los sitios estaban en control de versiones, el resto de los requisitos eran relativamente fáciles de cumplir. La documentación para CVS y Subversion hace sugerencias para posibles métodos de actualización.
Es posible que necesite ACL para limitar el acceso a áreas particulares dentro del contenido controlado por la versión. Sin embargo, tiendo a trabajar con confianza. El control de versiones facilita ver quién hizo qué y cuándo. Si no reformatea los archivos, es fácil obtener un historial anotado de un archivo que muestre quién agregó qué líneas y cuándo.