Вас бентежить роль системи управління версіями. Це не було і ніколи не було задумано бути системою резервного копіювання для працюючого веб-сайту. Це надзвичайно гарна робота з управління статичним вмістом, щоб він керував виробництвом контрольовано. При правильному використанні тегів та автоматизованих реєстрацій навіть швидкі зміни сайтів можуть зберігатися у системі контролю версій.
Система контролю версій зможе розповісти, як ви перейшли від того, як виглядав сайт минулого місяця, до того, як він виглядає сьогодні (принаймні для тих компонентів, які перебувають під контролем джерела). Він повинен містити все необхідне для відновлення веб-сайту (крім динамічного контенту). Як зазначали інші, будь-які зміни дозволів та прав власності повинні бути написані, а цей сценарій включений до контролю версій.
Дозволи на доступ до веб-сайтів, як правило, досить прості. (В основному, вам потрібно забезпечити, щоб веб-сервер міг читати весь вміст і писати його дуже мало.) За винятком власності на каталоги в кількох каталогах, які потрібно писати підривкою веб-сервера, і, можливо, git, безумовно, можна обробляти дозволи. Каталоги, якими можна користуватися веб-сервером, зазвичай містять динамічний контент (створений та оновлений на веб-сайті), яким керується окремо від джерела веб-сайтів.
Якби мене попросили працювати з веб-сайтом зі складними дозволами та ACL на вашому веб-сайті, я мав би серйозні занепокоєння щодо процесу, який використовується для управління веб-сайтом. Впровадження системи контролю версій та переміщення ACL до неї було б одним із рішень, які я серйозно розглядаю.
Динамічний вміст, такий як записи в блозі або коментарі, зазвичай міститься в базі даних або в іншому сховищі даних, а не в контролі версій, що використовується для створення сайту. Зберігання даних може бути організовано для забезпечення контролю версій вмісту (як це програмне забезпечення). Багато вікі-серверів використовують систему контролю версій для відстеження змін.
Редагувати:
Виправлення, яке я використовую, це: (а) відсутність контролю над версіями взагалі; (б) сайт виробництва - це головний сайт; (в) архівувати щоразу, коли щось змінюється; сценарій встановлення виправляє інші непотрібні файли.
Ці проблеми можна вирішити, імпортуючи сайт у систему контролю версій та змінивши процес, щоб головний сайт оновлювався через цю систему. (a), (b) та (c) обробляються безпосередньо контролем версій. Ви можете позначити випуски, щоб покращити роботу (c). (г) як правило, це не проблема, якщо система розгортання змінює лише ваш сайт. Я ніколи не потребував ACL-вмісту на вмісті сайту.
(д) потрібно запускати лише при первинному створенні та великих змінах. Він також може включати скрипт, який оновлює сайт від контролю версій і працює часто. Ці сценарії, як правило, досить прості, коли ви тримаєте сайт у системі управління відразою.
Але чому ніхто не побудував загальної системи для цього?
Тому що він не потрібен, якщо ви використовуєте систему контролю версій.
Система управління версіями МОЖЕ відслідковувати всі ці речі, але жодна не робить.
І CVS, і Subversion відстежують те, що потрібно відстежувати, якщо ви їх використовуєте. Вони не відслідковуватимуть те, що потрібно відстежувати, оскільки ви не використовуєте систему контролю версій, а також не повинні. Вони відслідковують те, що потрібно відстежувати, коли ви використовуєте систему контролю версій.
Я працював з декількома сайтами, які керували їх вмістом за допомогою контролю версій. Усі мали різні вимоги до розміщення сайтів, частоти розгортання та повноти оновлень. Після того, як сайти контролювали версію, решта вимог були досить легко виконати. Документація як для CVS, так і для Subversion пропонує пропозиції щодо можливих методів оновлення.
Вам можуть знадобитися ACL, щоб обмежити доступ до певних областей у вмісті, що контролюється версією. Однак я прагну працювати на основі довіри. Контроль версій дозволяє легко зрозуміти, хто що робив коли. Якщо ви не переформатуєте файли, легко отримати анотовану історію файлу, який показує, хто додав рядки, коли.