Özellikle yazılım geliştirme dünyasında iseniz, yazdığınız kodların güvenilir bir şekilde saklanması, versiyonların takip edilmesi, kodun gelişimine katkıda bulunanların ve kodun kontrol altında tutulması ihtiyacınız doğmuştur.
Windows ortamında kaynak kod güvenliğini ve versiyonlama takibini yapabilmek için bir kaç alternatifiniz bulunuyor. Özellikle MS ürünleri ile yazılım gerçekleştiriyor iseniz mutlaka karşınıza çıkmış olan Visual Source Safe, açık kod dünyasından RCS , SVN, CVS ve CVSNT
Yabancı terimlerin Türkçeye çevrilmesindeki bazı güçlüklerden dolayı açıklamaların başında Türkçe manasını verip metin içinde orjinal kısaltmaları kullanmaya çalışacağım.
RCS Nedir?
RCS (Revision Control System), GNU.org'da da belirtildiği üzere dosya üzerinde revizyonları takip edebilmek üzere geliştirilmiş bir kontrol sistemidir.
CVS Nedir?
CVS , Concurrent Versions System , açık kaynak olarak geliştirilmiş olan kaynak kod kontrol sistemidir. Üzerine inşaa edildiği RCS (Revision Control System)'den bir dosyayı birden fazla kişinin aynı anda değiştirmesine izin vermesi, sadece dosyaların değil dizinler ve altındaki tüm dosyaları bir hamlede kontrol sisteminden çekip kullanabilmesi, üzerlerinde fark alma gibi işlemler yapabilmesi ve kolay kullanımı gibi ana farklar ile ayrılmaktadır. RCS ve CVS nin kendine göre kullanım alanları olsa da, aralarında karşılaştırma yapıldığında CVS ön sırada bulunmaktadır.
CVS nin resmi sitesi olan CVSHome.org adresinde yeni başlayanlar için "Yeni başlayanlar için CVS" gibi birbirinden yararlı dökümanlara ulaşabilirsiniz. Amacımız CVS sisteminin Windows üzerinde nasıl uyuglanabilir olduğunu aktarmaya çalışmak olduğu için CVS'nin kısa bir tanımının yeterli olduğunu düşünüyorum.
CVSNT Nedir?
CVS'den türemiş güvenlik, kullanılabilirlik ve daha bir çok özelliği ile ayrılan ve kaynak kontrol alanında pazarın lideri olan açık kaynak kodlu bir CVS sürümüdür. Bence bizler için en yararlı olan özelliği CVSNT ile beraber gelen UTF8/Unicode dil desteği ile Türkçe isimli dosyalarımızı rahatlıkla saklayabilmemiz ve Windows kullanıcı adı ve şifrelerimiz ile sisteme SSL/SSH kullanarak erişebilmemiz.
Neden CVSNT?
Önce Source Safe vardı :) Microsoft teknolojileri ile çalışmayı alışkanlık edindiğimiz için epey bir süre Visual Source Safe (VSS) kullandık ve/veya kullanmaya çalıştık. Kendince güzellikleri olsada temel anlamda VSS'in hem dosya koruma, hem güvenlik taraflarında problemleri vardı. Mesela standart olarak belli sürelerde bir göçebilirdi, veya yetki tanımlamanız cidden zor olabilirdi. En kötüsü Repository dediğimiz dosya havuzu tamamen kendine özgü binary bir sistem ile tutulduğu için her hangi bir göçme durumunda özenle koruduğunuz kodlarınızın, belgelerinizin geriye dönüşü imkanı imkansız derecede zora giriyordu.
Geçtiğimiz yıl VSS'in son göçüşünde CVS sistemine geçmeye karar verip, CVSNT de karar kıldık. İnternette araştırarak VSS dosya havuzumuzdan dosyalarımızı çekebilecek bir kaç yöntem bulabildim ama bu alanda işe yarar diye düşündüğüm Vss2Rcs kurtara kurtara kaynak kodlarımızın bir kaç sürüm önceki (ilk) versiyonlarını kurtarabildi. Ne mi yaptık? Allah'tan VSS deki kodlarımızın birer kopyaları geliştirme makinalarımızda da mevcuttu onları kullanarak beyaz bir sayfa açtık, o gün bugündür CVSNT ile yolumuza devam ediyoruz. ( İsterseniz bu iş için VSSExtractor'u da deneyebilirsiniz.)
CVSNT ile neler yapabiliyoruz? Mesela Windows şifre ve kullanıcı adlarımızla dosya sistemine gore verilmiş izinlerle erişebileceğimiz kod havuzlarımıza, şirket içi ağımızdan veya internetten ulaşabiliyoruz. Ulaşırken SSL/SSH kullanabiliyoruz. Dosya transferleri şifreli olsun ve sıkıştırılmış olsun diyebiliyoruz. İstediğimiz tarihteki kodlarımızı bir hamlede çekebiliyor, istediğimiz gibi dosyalara alt versiyonlar (branch, bir örneğin dosyanızın A işletim sistemi için ayrı, B işletim sistemi için ayrı yazılması gerekiyor) oluşturabiliyor, gerekirse bir dosyayı aynı anda birden fazla kişi ile değiştirme hakkını kullanabiliyoruz. (Mesela bir kod kütüphaneniz var ve siz bir fonksiyonu, arkadaşınız başka bir fonksiyonu değiştirmek istiyorsunuz, bu durumda VSS'den ve RCS'den ayrılan bu CVS özelliği devreye giriyor.)
CVSNT'ye geçişte tek kaybımız Microsoft Visual Studio içinde direk VSS bağlantısı imkanımız vardı, artık o yokdu. Fakat bu eksikliği çok daha akıllı ve güzel bir sistem ile giderdik. Yazının devamında CVSNT ye ulaşım nasıl sağlanır bulabilirsiniz. (İsterseniz ücretli bir plugin ile Visual Studio IDE'si üzerinden CVS/SVN erişimlerinizi yapabilirsiniz.)
CVSNT Kurulumu
Kurulum aslında çok basit, temelde takip edilecek yol
Diğer kaynak kod versiyonlama sistemleri
Eğer CVS kullanmak istemiyor iseniz , MS cephesinden Visual Source Safe'i ve yeni gelecek olan kardeşi VSS 2005'i deneyebilirsiniz. VSS 2005 için büyük yenilikler getirdiklerini söylüyorlar fakat bizler bu listede olan herşeyi yukarıdaki işlemler ile rahat rahat yapabiliyoruz, hem güvenilir, hem de bedavaya.
Açıkkod cephesinden ise SVN (subversion) ile ilgilenebilirsiniz. SVN kullanacak iseniz , TortoiseSVN'de kullanabilirsiniz. Tabi CVSNT'nin SVN'e göre onca avantajı varken tercih size kalmış :)
Linkler & Referanslar
-atakan-
06.06.2005

