Versiyon Kontrolü Nedir?
Versiyon kontrol kısaca, uygulamanızın kaynak kodunun yönetimini sağlayan uygulamalardır. 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ı gibi ihtiyaçları gidermek için ortaya çıkmıştır. Kodunuzu takımlar halinde geliştiriyorsanız, kod paylaşımını kolaylıkla yapabilir, revizyonları kontrol edebilirsiniz. Kodun geçmiş sürümleride saklandığı için kodunuzun istediğiniz bir sürümüne geri dönebilirsiniz.
Versiyon Kontrol Sistemi Kullanmanın Faydaları Nelerdir?
- Birden fazla kişi aynı proje hatta aynı kod üzerinde çalışabilir ve bu değişiklikler tek bir kod dosyasına entegre edilebilir.
- Kodlar üzerinde yaptığınız değişiklikleri geri almak isterseniz, değişiklik yapılmadan önceki eski versiyonu sizin için saklar.
- Yazılan kodlar versiyon kontrol sistemi sunucusuna gönderilebilir, daha sonra istenen kısımlar indirilip üzerinde değişiklik yapılabilir.
- Farklı gereksinimler için farklı dallar oluşturup aynı anda birden fazla geliştirme yapabilir ve bu geliştirmeleri sonradan tek bir projede toplayabilirsiniz.
- Herhangi bir dosyanın eski sürümünü indirebilir, yeni sürümü ile arasındaki farkları görebilirsiniz.
Hangi Versiyon Kontrol Yazılımını Tercih Etmeli : CVS? SVN? GIT?
Bir versiyon kontrol sistemi seçilirken, programcı ekibinin gereksinimleri göz önünde bulundurulmalıdır. Her versiyon kontrol sistemi istenilen esnekliği sağlayamayabilir. Projeniz için en uygun olan versiyon kontrol sistemini seçebilmeniz için , size temel özelliklerini sunuyoruz:
1. CVS (Concurrent Versions System)
CVS , Concurrent Versions System , açık kaynak olarak geliştirilmiş olan kaynak kod kontrol sistemidir.
- Kaynak yazıların takibini kolaylaştırır.
- Kaynakların tek merkezden yönetilmesine olanak tanır.
- Dosyaların istediğiniz sürümlerini çekmenize fırsat verir.
- Sizin yerinize bütün dosyalara sürüm numaraları verir.
- Programcı istediği tarihteki kaynak kodlara erişip üzerinde çalışma yapabilir.
- Kaynak kodun tüm tarihçesinin saklanması gereğinden fazla disk alanı harcayacakmış gibi düşünülebilir. Ancak CVS bunu oldukça zekice bir yöntemle, yalnızca sürümler arasındaki farkları tutarak çözer.
- Programcı, diğer proje üyelerinin yazdığı kodları görebilir, onlara ilave yapabilir. Yaptığı bu ilaveleri diğer programcılar takip edebilir
2. SVN (Subversion)
Subversion açık kaynaklı (open source) versiyon kontrol sistemidir. Bazı özellikleri söyledir:
- Subversion CVS örnek alınarak yapılmıştır. Amaç CVS’de daha iyi bir versiyon kontrol sistemi oluşturmaktı. Bu yüzden Subversion birçok CVS özelliğine sahiptir.
- Subversion dizinlerin de normal dosyalar gibi versiyonlarını oluşturur.
- Kopyalama, silme ve isim değiştirme işlemlerinde Subversion tarafından yeni versiyonlar oluşturulur.
- Subversion’da yapılan işlemler ya hep ya hiç prensibiyle gerçekleşir, yani commit’ler atomiktir (atomic commits).
- Dal (branch) ve etiket (tag) oluşturulması copy işlemi kullanılarak gerçekleştirildiği için kısa sürer.
- File locking (dosya kitleme) mekanizması kullanılarak, dosyaların üzerinde değişiklik yapılması engellenebilir.
- Subversion bir Apache web sunucu üzerinde erişilebilir hale getirilebilir
- Svnserve komutuyla Subversion, versiyon kontrol serveri olarak görev yapabilir.
3. GIT
- Fonksiyonel açıdan SVN’ye benziyor ve kullanım açısından en az SVN kadar kolay ve görevleri daha basit hale getiren GUI’si de var.
- Sadece belirlediğiniz satırlarda işlem yapabilirsiniz. Git ile sadece işlemle alakalı satırları seçip, bunlar üzerinde değişiklik yapabilirsiniz.
- Birden fazla özellik ekleyerek dosyaları değiştirebilirsiniz.
- Hızlıdır.
- Çalışmalarınızı saklayabilirsiniz.—değişikliklerinizi bir kenara koyun ve dosyaları son versiyonuna güncelleyin ve daha sonra değişikliklerinizi geri alın.
- Ucuz yerel dallanma sağlar (local branching)
- Herşey lokal olarak yapılır.
- Git küçüktür.
- İşlem yapmadan önce işlem yapacağınız alan üzerinde önizleme yapmanızı sağlayan “staging area” veya index alanı oluşturur.
- Merkezi bir sistemle merkezi çalışma ağı sunar.
- Değişiklik yapan kişilerin değişikliklerini takım liderine gösterir ve değişiklikleri dahil edip etmeyeceğini sorar.
- Basit bir hosting sitesinden daha çok sosyal bir ağa benzeyen “GitHub” servisini sunar.insanlar burada benzer çalışmaları yaptıkları kişileri veya benzer projeleri bulurlar.
- Öğrenmesi kolaydır.
Leave a Reply