Dağıtık Versiyon Kontrol Sistemleri
Dağıtık Versiyon Kontrol Sistemleri (DVCS – Distributed Version Control Systems), projelerinizde kullandığınız versiyonlama sistemlerinde, geleneksel olarak kullanılan client-server mimarili sistemlerden biraz ayrışmaktadır. Türkiye’ de zannediyorum sık kullanım açısında SVN (Subversion) projelerde versiyon kontrol sistemi olarak kullanılıyordur. SVN sisteminde, geliştiricilerin erişebildiği uzak bir sunucuda versiyonlama yapılır. Birden fazla kullanıcının yaptığı ve onayladığı değişiklikler (commit), bir revizyon numarasıyla SVN sunucusunda kayıt altına alınır. SVN sisteminde kullanıcılar yaptıkları değişiklikleri kayıt altına alabilmeleri yani commit edebilmeleri için, o anda SVN sunucusuna erişim sağlanabiliyor olmalıdır. Yani SVN sisteminde lokal commit yoktur ve SVN sunucu her daim ayakta olmalıdır.
Bu noktada geleneksel Versiyon Kontrol Sistemlerine alternatif olarak bu işi dağıtık, yani sunucu bağımsız olarak gerçekleştiren çeşitli V-C-S araçları bulunuyor. Bunların en ünlüsü sanıyorum Git ve Mercurial‘ dir.
Versiyon Kontrol Sistemi denince aklımıza belirli bir komut seti eşliğinde, proje kodlarının versiyonlamasını yapan, yapılan bu değişiklikleri kayda geçirmeyi amaçlayan bir araç/yazılım düşünmelidir. Kısacası, Git deyince Github cloud sitesi aklımıza gelmemelidir. Onun yerine Git versiyon sisteminin sahip olduğu komut kümesi aklımıza gelmelidir.
Dağıtık Versiyon Kontrol Sistemlerinin en yaygın kullanılanı ve bilineni Git’ dir. Bu kadar yaygın ve bilinen olmasının en temel sebebi github.com gibi bir host servise imkan sunması. Git sistemi, SVN versiyon kontrol sistemine göre daha karmaşık kod kümesine sahip, bu nedenle öğrenme eğrisi biraz dik. Elbette bir IDE ile çalışılıyorsa, bu komutları yönetmek daha kolay bir hal alıyor.
Dağıtık Versiyon Kontrol Sistemlerinin diğer bir önemli oyuncusu Mercurial. Mercurial öğrenme süresi bakımından Git versiyon sistemine göre daha kolay ve SVN’ den Mercurial’ a geçiş de öyle. Eğer proje kodları SVN’ den Mercurial’ a taşınmak isteniyorsa bu işler için Mercurial bünyesinde çeşitli komutlar bulunuyor.
Mercurial öğrenmesi ve kullanması gayet kolay. Git versiyon sistemine göre bilinirlik açısından dezavantajı ise, github.com gibi bir özel ortamının bulunmaması. Fakat, sektör içerisinde Mercurial’ ı destekleyen çeşitli kaynak kod yönetim siteleri bulunmakta. Buna örnek olarak Atlassian Bitbucket verilebilir.
github.com üzerinde isteyen herkes public (herkese görünür) olarak ve bedava kodlarını yönetebiliyor. Private (sana görünür) kullanım için ise belirli bir ücret verilmesi gerekiyor. Bir Atlassian ürünü olan bitbucket.org üzerinde ise, ister private ister public olarak kendi alanınızı takım sınırı 5 olarak bedava kullanabiliyorsunuz. Versiyon kontrol sistemleri açısından bitbucket.org hem Git hem de Mercurial sistemlerini destekliyor. Aynı zamanda Bitbucket içinde oluşturduğunuz repo’ larda, proje yönetimi açısından Issue Tracking ve Wiki mekanizmalarını da kullanabiliyorsunuz.
Atlassian firması proje yönetimi ve bunun da yanında yazılım geliştirme süreçlerini yönetebilecek çok güçlü yazılımlar sunuyor. Bitbucket, Atlassian firmasının bir ürünü olduğu için, diğer yazılım çözümleri ile mükemmel birliktelik ve entegrasyon da sunuyor. Örneğin bir Sürekli Entegrasyon aracını “Atlassian Bamboo” hatta farklı bir çözüm olan “Jenkins” ‘ i rahatlıkla Bitbucket’ a entegre edebiliyorsunuz. Ya da, proje üzerindeki oynamaların otomatik olarak Twit’ lenmesini ya da takım arkadaşlarınıza mail ile bilgilendirilmesini sağlayabilirsiniz. Bitbucket’ ı çok beğendiğimi belirtir ve sizlerinde denemenizi tavsiye ederim.
Tekrar görüşmek dileğiyle..