Обычно рабочий процесс заключается в том, что у вас есть хранилище со всеми ревизиями и изменениями. При этом используется специальный формат, нет никакого прямого доступа к этим файлам. Доступ к репо обычно осуществляется через интерфейс WebDAV (работает как модуль apache) или работает на автономном сервере (с собственным протоколом).
Пользователи фиксируют свои изменения в репозитории, а затем могут экспортировать последнюю версию (или одну из них по своему выбору) в общедоступный каталог * public_html *. Это вовлекает их во взаимодействие с VCS и знание (и заботу) об этом.
Более простая установка может состоять в том, что * public_html * содержит рабочую копию , и они взаимодействуют с ней через обычный FTP. (Вы должны убедиться, что файлы VCS, например, папки .svn
, не могут быть доступны широкой публике). Таким образом, вы можете предоставлять функции VCS (в основном, фиксацию и откат) вашим пользователям через веб-интерфейс (вы пишете небольшой скрипт PHP, который выполняет commit и update для вас) .
Инкрементные резервные копии: совершенно другая история
Как я понял, вам, вероятно, нужно нечто большее, например, инкрементные резервные копии, например rsync . Каждый раз, когда пользователь закрывает FTP-соединение, вы можете инициализировать резервную копию rsync. Он имеет гибкие опции, вы можете иметь все изменения за последние X дней или последние сеансы X FTP, чтобы пользователь мог откатиться после случайной загрузки. (Может использоваться с удаленным или локальным хранилищем для резервных копий).