Вы запутались в роли системы контроля версий. Он не был и никогда не предназначался для резервного копирования работающего веб-сайта. Он очень хорошо справляется с управлением статическим контентом, поэтому он контролируется. При правильном использовании тегов и автоматических проверок даже быстро меняющиеся сайты могут быть сохранены в системе контроля версий.
Система контроля версий сможет рассказать вам, как вы узнали, как сайт выглядел в прошлом месяце, и как он выглядит сегодня (по крайней мере, для тех компонентов, которые находятся под контролем исходного кода). Он должен включать в себя все необходимое для перестройки сайта (кроме динамического контента). Как уже отмечалось, любые изменения в разрешениях и владельцах должны быть записаны в сценарии, и этот сценарий включен в систему контроля версий.
Права доступа к веб-сайтам, как правило, довольно просты. (По сути, вы должны убедиться, что веб-сервер может читать весь контент и писать его очень мало.) За исключением владения каталогом нескольких каталогов, которые должны быть доступны для записи с помощью веб-сервера, и, возможно, Git, может обрабатывать разрешения. Каталоги, доступные для записи веб-сервером, обычно содержат динамический контент (созданный и обновляемый с веб-сайта), который управляется отдельно от источника веб-сайтов.
Если бы меня попросили поработать с веб-сайтом со сложными правами доступа и списками ACL на вашем веб-сайте, у меня были бы серьезные опасения по поводу процесса, используемого для управления веб-сайтом. Внедрение системы контроля версий и перемещение ACL в нее было бы одним из решений, которое я бы серьезно рассмотрел.
Динамический контент, такой как записи блога или комментарии, обычно содержится в базе данных или другом хранилище данных, а не в управлении версиями, используемом для создания сайта. Хранилище данных может быть выполнено с возможностью обеспечения контроля версий его содержимого (как и это программное обеспечение). Многие вики используют систему контроля версий для отслеживания изменений.
РЕДАКТИРОВАТЬ:
Исправление, которое я использую: (а) совсем нет контроля версий, (б) рабочий сайт является главным сайтом, (в) архивировать каждый раз, когда что-либо меняется, (г) сценарий архивирования удаляет ненужные файлы, такие как ACL, и (д) Сценарий установки исправляет другие нежелательные файлы, такие как права доступа
Эти проблемы могут быть решены путем импорта сайта в систему контроля версий и изменения вашего процесса, чтобы главный сайт обновлялся через эту систему. (a), (b) и (c) обрабатываются непосредственно системой контроля версий. Вы можете пометить релизы, чтобы заставить (с) работать лучше. (d) обычно это не проблема, если система развертывания изменяет только ваш сайт. Я никогда не нуждался в ACL на контенте сайта.
(д) нужно запускать только при первоначальном создании и крупных изменениях. Он также может включать скрипт, который обновляет сайт из-за контроля версий и часто запускается. Эти сценарии, как правило, довольно просты, когда вы держите свой сайт в системе контроля неприятия.
Но почему никто не создал общую систему для этого?
Потому что это не нужно, если вы используете систему контроля версий.
Система контроля версий МОЖЕТ отслеживать все эти вещи, но никто не делает.
И CVS, и Subversion отслеживают, что вам нужно отслеживать, если вы их используете. Они не будут отслеживать то, что вам нужно отслеживать, потому что вы не используете систему контроля версий, и при этом они не должны. Они отслеживают то, что вам нужно отслеживать, когда вы используете систему контроля версий.
Я работал с несколькими сайтами, которые управляли своим контентом с помощью контроля версий. У всех были разные требования к промежуточным сайтам, частоте развертывания и полноте обновлений. Как только сайты были в управлении версиями, они соответствовали остальным требованиям. Документация для CVS и Subversion содержит предложения о возможных методах обновления.
Возможно, вам понадобятся списки ACL для ограничения доступа к определенным областям содержимого с контролем версий. Однако я склонен работать на доверительной основе. Контроль версий позволяет легко увидеть, кто что сделал и когда. Если вы не переформатируете файлы, легко получить аннотированную историю файла, показывающую, кто, когда и какие строки добавил.