Jesteś zdezorientowany co do roli systemu kontroli wersji. Nie jest i nigdy nie miał być systemem zapasowym dla działającej strony internetowej. Bardzo dobrze radzi sobie z zarządzaniem zawartością statyczną, aby przejść do produkcji w kontrolowany sposób. Przy prawidłowym stosowaniu tagowania i automatycznych kasach nawet szybko zmieniające się strony mogą być przechowywane w systemie kontroli wersji.
System kontroli wersji będzie w stanie powiedzieć ci, jak uzyskałeś wygląd strony w zeszłym miesiącu do tego, jak wygląda dzisiaj (przynajmniej w przypadku tych komponentów, które są pod kontrolą źródła). Powinien zawierać wszystko, czego potrzebujesz do przebudowania witryny (z wyjątkiem treści dynamicznych). Jak zauważyli inni, wszelkie zmiany w uprawnieniach i prawach własności powinny być zapisywane w skrypcie, a ten skrypt powinien być uwzględniony w kontroli wersji.
Uprawnienia dostępu do stron internetowych są zazwyczaj dość proste. (Zasadniczo musisz upewnić się, że serwer sieciowy może odczytać całą zawartość i napisać bardzo mało). Z wyjątkiem własności katalogu do kilku katalogów, które muszą być zapisywalne przez subversion serwera WWW i być może git, z pewnością mogą obsłużyć uprawnienia. Katalogi, w których serwer WWW może zapisywać, zazwyczaj zawierają treści dynamiczne (tworzone i aktualizowane ze strony internetowej), którymi zarządza się niezależnie od źródła stron internetowych.
Gdybym został poproszony o pracę z witryną o skomplikowanych uprawnieniach i listach kontroli dostępu w witrynie, miałbym poważne obawy dotyczące procesu zarządzania tą witryną. Wdrożenie systemu kontroli wersji i przeniesienie do niego list ACL byłoby jednym z rozwiązań, które poważnie rozważę.
Treści dynamiczne, takie jak wpisy na blogu lub komentarze, są zwykle zawarte w bazie danych lub innym magazynie danych, a nie w kontroli wersji używanej do tworzenia witryny. Magazyn danych może być skonfigurowany w celu zapewnienia kontroli wersji jego zawartości (podobnie jak to oprogramowanie). Wiele stron Wiki używa systemu kontroli wersji do śledzenia zmian.
EDYTOWAĆ:
Poprawka, której używam to (a) Brak kontroli wersji, (b) Witryna produkcyjna jest witryną główną, (c) Archiwizuj za każdym razem, gdy coś się zmieni, (d) Skrypt archiwizujący usuwa śmieci takie jak ACL i (e) skrypt instalacyjny naprawia inne niepotrzebne uprawnienia do plików.
Problemy te można rozwiązać, importując witrynę do systemu kontroli wersji i zmieniając proces, tak aby witryna główna była aktualizowana przez ten system. (a), (b) i (c) są obsługiwane bezpośrednio przez kontrolę wersji. Możesz oznaczyć wydania, aby (c) działało lepiej. (d) generalnie nie stanowi problemu, jeśli tylko system wdrażania zmienia witrynę. Nigdy nie potrzebowałem list ACL dla treści witryny.
(e) powinien być uruchamiany tylko przy początkowym utworzeniu i większych zmianach. Może także zawierać skrypt aktualizujący witrynę z poziomu kontroli wersji i często uruchamiany. Te skrypty są zwykle dość proste, gdy trzymasz witrynę w systemie kontroli awersji.
Ale dlaczego nikt nie zbudował ogólnego systemu do tego?
Ponieważ nie jest to konieczne, jeśli używasz systemu kontroli wersji.
System kontroli wersji Mógłby śledzić wszystkie te rzeczy, ale żaden nie.
Zarówno CVS, jak i Subversion śledzą to, co musisz śledzić, jeśli ich używasz. Nie będą śledzić rzeczy, które musisz śledzić, ponieważ nie używasz systemu kontroli wersji, nie powinni też. Śledzą to, co należy śledzić, gdy korzystasz z systemu kontroli wersji.
Pracowałem z kilkoma witrynami, które zarządzały ich zawartością za pomocą kontroli wersji. Wszystkie miały różne wymagania dotyczące witryn przemieszczania, częstotliwości wdrażania i kompletności aktualizacji. Gdy witryny były już w kontroli wersji, pozostałe wymagania były stosunkowo łatwe do spełnienia. Dokumentacja zarówno dla CVS, jak i Subversion sugeruje możliwe metody aktualizacji.
Możesz potrzebować list ACL, aby ograniczyć dostęp do określonych obszarów w treści kontrolowanej wersją. Jednak zazwyczaj pracuję na zasadzie zaufania. Kontrola wersji ułatwia sprawdzenie, kto co zrobił, kiedy. Jeśli nie sformatujesz plików, łatwo jest uzyskać historię pliku z adnotacjami pokazującą, kto dodał, które wiersze kiedy.