tr | en
20
Eki
2016
Sürüm Denetimi Sistemleri
Kategori: 

Sürüm Denetimi, belirli bir dosyanın ya da dosyalar gurubunun zaman içerisindeki değişimini kayıt altına alır ve gerek duyulduğunda herhangi bir sürümüne erişimi mümkün kılar. Bu işlevi mümkün kılan sistemler ise kısaca SDS (VCS) olarak adlandırılırlar.

Basitten gelişmişe sıralamak gerekirse sürüm denetimi sistemleri aşağıdaki şekilde sınıflandırılırlar:

  • Yerel SDS (Local VCS)

  • Merkezi SDS (Centralized VCS)

  • Dağıtık SDS (Distributed VCS)

Yerel SDS

En basit haliyle dosyaları belirli bir klasör altında toplayıp adlarını sistematik bir şekilde belirleyerek (örneğin adının sonunu _## şeklinde bir sıra numarası ile ya da YYYAAGG_## şeklinde tarih ve sıra numarası birlikte kodlayarak) sürüm kontrolü yapmak mümkün olmakla birlikte, bu tür manuel işlemler her zaman hataya açıktır ve özellikle sürüm konturolü uygulanacak dosya sayısı ve dosyalar üzerinde çalışan kişi sayısı arttıkça bu yöntem içinden çıkılmaz bir hal alır.

Bu sorunların çözümüne yönelik olarak dosyalarda yapılan tüm güncellemelerin basit bir veritabanında saklandığı Yerel SDS'ler geliştirildi Halen yaygın olarak Unix/Linux/Mac vb. sistemlerde halen varlığını sürdüregelen RCS (Revision Control System) - ci, co, rcsdiff, rlog, vb. komutlar - Yerel SDS uygulamalarındandır.

Modern SDS çözümlerine rağmen RCS benzeri yerel sürüm denetimi çözümlerinin özellikle sistem yöneticileri için hala vazgeçilmez bir gereç olmayı sürdürmekte olduğunu da gözardı edemeyiz. Özellikle sürüm denetimi uygulanan dosyaların diğer sistemlerdeki kopyala-güncelle-birleştir işlemlerinden oluşan iş akış zorlaması aksine özellikle sistem konfigürasyon dosyaları için önemli olan dosyaları kendi yerinde tutabilme yeteneği bu çözümleri hala vazgeçilmez kılmaktadır.

Merkezi SDS

Proje takımları büyüdükçe tüm proje dosyalarının proje ekibi tarafından ortaklaşa kullanılabilecek şekilde merkezi bir yerde toplanma gereksinimi doğdu. Bu gereksinimi karşılamaya yönelik olarak CVS, Subversion, vb., tüm dosya sürümlerinin merkezi bir sunucu üzerinde tutulduğu çözümler geliştirildi. Bu çözümler yıllarca başarıyla hizmet vermeyi sürdürdüler.

Bu yaklaşım merkezi tutulan veri sayesinde kimin ne yaptığının kolaylıkla denetlenebildiği ve yetkilendirmeler ile yönetilebildiği birçok avantajı beraberinde sunarken, tek nokta kırılganlığı, yedekleme gereksinimi, vb. bazı olumsuzlukları da içermektedir.

Dağıtık SDS

Merkezi SDS'lerin kırılganlıklarını gidermeye yönelik olarak GIT, Mercuriaal, Bazaar, vb. modern Dağıtık DTS'ler geliştirildi. Bu sistemlerin ortak özelliği çıkış (checkout) işleminde sadece dosyaların son sürümünü değil tüm veri havuzunu aktarmalarıdır. Böylelikle dosya içerikleri tüm geçmişi ile birlikte çıkartıldıkları yerde yansılanmış olur. Bu sistemlerde her kopya (clone) aynı zamanda veritabanının tüm içeriği ile birlikte alınmış birer yedeğidir.

Bu yapıları sayesinde Dağıtık SDS'ler aynı zamanda birden çok sayıda uzak veri havuzu (remote repository) ile eşgüdümlü çalışma yeteneğine de sahiptirler. Bu sayede, aynı projece farklı yetkilerdeki farklı kişi ve gruplarla farklı şekillerde birlikte çalışmak mümkündür. Bu yapı, merkezi SDS'lerde mümkün olmayan hiyerarşik modellere dayanan işakışlarını uygulamaı mümkün kılar.