Bir sürüm kontrol sisteminin rolü hakkında kafanız karıştı. Çalışan bir web sitesi için bir yedekleme sistemi değildir ve hiç tasarlanmamıştır. Statik içeriği yönetmek için son derece iyi bir iş çıkarır, böylece kontrollü bir şekilde üretime geçer. Etiketleme ve otomatik kullanıma alma işlemlerinin doğru kullanımı sayesinde hızlı değişen siteler bile sürüm kontrol sisteminde tutulabilir.
Bir sürüm kontrol sistemi, sitenin geçen ay neye benzediğinden bugün nasıl göründüğüne (en azından kaynak kontrolü altındaki bileşenler için) nasıl bir şekilde sahip olduğunuzu söyleyebilecektir. Web sitesini yeniden oluşturmak için ihtiyacınız olan her şeyi içermelidir (dinamik içerik hariç). Diğerlerinin de belirttiği gibi, izinlerde ve sahiplikte yapılan değişiklikler komut dosyası olmalı ve komut dosyası sürüm denetimine dahil edilmelidir.
Web siteleri için erişim izinleri genellikle oldukça basittir. (Temel olarak, web sunucusunun tüm içeriği okuyabildiğinden ve çok az yazabildiğinden emin olmanız gerekir.) Web sunucusu altyazısı tarafından yazılabilir olması ve muhtemelen git olması gereken birkaç dizinin dizin sahipliği dışında kesinlikle izinleri işlemek. Web sunucusu tarafından yazılabilir dizinler genellikle web sitesi kaynağından ayrı olarak yönetilen dinamik içerik (web sitesinden oluşturulan ve güncellenen) içerir.
Web sitenizde karmaşık izinlere ve EKL'lere sahip bir web sitesiyle çalışmam istenseydi, web sitesini yönetmek için kullanılan süreçle ilgili ciddi endişelerim olur. Bir sürüm kontrol sistemi uygulamak ve ACL'leri bu sisteme taşımak, ciddi olarak dikkate alacağım çözümlerden biri olacaktır.
Blog girişleri veya yorumlar gibi dinamik içerik, siteyi oluşturmak için kullanılan sürüm kontrolü yerine genellikle bir veritabanında veya başka bir veri deposunda bulunur. Veri deposu, içeriğinin sürüm kontrolünü sağlayacak şekilde düzenlenebilir (bu yazılım gibi). Birçok Wikis, revizyonları izlemek için bir sürüm kontrol sistemi kullanır.
DÜZENLE:
Kullandığım düzeltme (a) Hiç sürüm kontrolü yok, (b) Üretim sitesi ana sitedir, (c) Her değişiklik olduğunda arşivleyin, (d) Arşiv komut dosyası ACL gibi önemsiz öğeleri kaldırır ve (e) yükleme komut dosyası, dosya izinleri gibi diğer gereksiz dosyaları düzeltir.
Bu sorunlar, sitenin bir sürüm kontrol sistemine aktarılması ve işlemin ana sitenin bu sistem üzerinden güncellenmesi için değiştirilmesiyle çözülebilir. (a), (b) ve (c) doğrudan sürüm kontrolü ile ele alınır. (C) 'nin daha iyi çalışması için sürümleri etiketlemek isteyebilirsiniz. (d) dağıtım sitenizi yalnızca sitenizi değiştirdiyseniz, genellikle sorun olmaz. Site içeriğinde ACL'lere hiç ihtiyacım olmadı.
(e) yalnızca ilk oluşturma ve büyük değişiklikler üzerinde çalıştırılması gerekir. Siteyi sürüm denetiminden güncelleyen ve sık çalışan bir komut dosyası da içerebilir. Sitenizi kaçınma kontrol sisteminde tuttuğunuzda bu komut dosyaları oldukça basit olma eğilimindedir.
Ama neden kimse bunu yapmak için genel bir sistem inşa etmedi?
Çünkü bir sürüm kontrol sistemi kullanmanız gerekmiyor.
Bir sürüm kontrol sistemi tüm bu şeyleri takip edebilir, ancak hiçbiri izleyemez.
Hem CVS hem de Subversion, bunları kullanıyorsanız izlemeniz gerekenleri izler. İzlemeniz gereken şeyi izlemeyeceklerdir, çünkü bir sürüm kontrol sistemi kullanmıyorsunuz veya kullanmamalısınız. Bir sürüm kontrol sistemi kullanırken izlemeniz gerekenleri izlerler.
Sürüm denetimini kullanarak içeriklerini yöneten birkaç siteyle çalıştım. Hepsinin siteleri hazırlama, dağıtım sıklığı ve güncellemelerin eksiksizliği için farklı gereksinimleri vardı. Siteler sürüm kontrolünde olduktan sonra, gereksinimlerin geri kalanını karşılamak nispeten kolaydı. Hem CVS hem de Subversion belgeleri, olası güncelleme yöntemleri için önerilerde bulunur.
Sürüm kontrollü içerik içindeki belirli alanlara erişimi sınırlamak için EKL'lere ihtiyacınız olabilir. Ancak, güvene dayalı çalışma eğilimindeyim. Sürüm kontrolü, kimin ne zaman ne yaptığını görmeyi kolaylaştırır. Dosyaları yeniden biçimlendirmezseniz, kimin hangi satırları ne zaman eklediğini gösteren bir dosyanın ek açıklamalı geçmişine sahip olmak kolaydır.