versiyon kontrol sistemleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
versiyon kontrol sistemleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Ocak 2017 Pazar

VERSİYON KONTROL SİSTEMLERİ


Versiyon kontrol sistemleri çalışma şekillerine göre sınıflandırılabilmektedir. Sadece yerel disk üzerinde lokal olarak çalışabilen sistemler olduğu gibi, bir sunucu üzerinden çalışan sistemler ve bu iki durumu birleştirecek şekilde çalışan sistemler de bulunmaktadır. 

Sadece Lokalde Çalışan Sistemler

Bu şekilde çalışan sistemlerde bir sunucu uygulaması yoktur. Versiyon kontrolü yapılacak belge ve dokümanlar yerel diskte lokal olarak saklanmaktadır.


RCS(Revision Contol System)

RCS depolama, geri alma, dosya günlüğü tutma ve revizyon birleştirme gibi işlemleri yapabilen bir revizyon takip programıdır. Sık revizyon yapılan programlar ve dokümanlar için kullanışlıdır. RCS sadece tek bir dosya üzerinde çalışmaya imkan vermektedir. Bir proje toplu olarak kontrol edilememektedir. Söz diziminin hantal olması bu sistemin kullanılışını azaltmaktadır.


CCS(Source Code Control System)

SCCS Revizyon Kontrol Sistemi (RCS) serbest bırakılana kadar Unix için baskın sürüm kontrol sistemi olarak kullanılmıştır. Bugün, SCCS genellikle eski olarak kabul edilir. Ancak, dosya biçimi hala BitKeeper ve TEAMWARE dahil olmak üzere diğer birkaç revizyon kontrolü programı tarafından dahili olarak kullanılmaktadır.


İstemci-Sunucuda İlişkisi İle Çalışan Sistemler

Bu şekilde çalışan sistemlerde dosyalar bir sunucuda tutulmaktadır. Kullanılmak istenen dosya sunucudan alınarak gerekli işlemler yapıldıktan sonra tekrar sunucuya gönderilir. Takım çalışması şeklinde geliştirilen projeler için yaygın şekilde kullanılmaktadır.

CVS(Concurrent Versions System)

CVS programı yazımızın ana konusu olan SVN programının temelini oluşturmaktadır. CVS’nin özelliklerini kısaca sıralarsak;
  • Açık kaynak kod olarak geliştirilmiş bir yazılımdır,
  • Kaynak kodların takibini kolaylaştırır,
  • Kaynak kodların tek merkezde depolanmasına ve yönetilmesine izin verir,
  • Kaynak kodların ya da kod parçalarının istenilen sürümlerine ulaşabilmenize ve üzerinde değişiklik yapmanıza olanak verir,
  • Kaynak kodların bütün sürümlerinin tutulması fazlaca disk alanına gereksinim duyacağından
  • CVS de tüm sürüm dosyaları değil sürümler arası değişiklikler tutulur,
  • Bir dosyaya birden fazla kişi tarafından erişilebildiğinden, yapılan değişiklikler herkes tarafından görülebilir ve istenilen dosya da değişiklik yapılabilir.

Dağıtık Şekilde Çalışan Sistemler

Dağıtık sürüm kontrol sistemleri daha yeni geliştirilmeye başlanmış ve daha esnek bir yapıya sahiptir. Merkezi sürüm kontrol sistemleriyle yapabilen hemen her şey dağıtık sürüm kontrol sistemleriyle de yapılabilmektedir. Dağıtık sürüm kontrol sistemlerinde, sunucu-istemci yapısına alternatif olarak, sürümlemeler için sunucuya bağlı olmak gerekli değildir. Dağıtık sürüm kontrol sistemlerinde de bir sunucu olabilir. Bu sistemlerde yazılımcı hazırladığı sürümleri lokal makinesinde belirleyebilir ve zamanı geldiğinde sunucu ile eşleştirebilir ayrıca takım arkadaşlarının sunucuya gönderdiği değişiklikleri kendi makinesindeki kodlarına kolaylıkla uygulayabilir.

Git

Git versiyon kontrol programının özeliklerine kısaca bakacak olursak,
  • Fonksiyonel açıdan SVN’e benzerlik göstermektedir. Kullanım açısından en az SVN kadar kolay ve görevleri daha basit hale getiren bir kullanıcı arayüzüne sahiptir.
  • Sadece belirlenen satırlarda işlem yapılabilir.
  • Birden fazla özellik eklenerek dosyalar değiştirilebilir.
  • Hızlıdır.
  • Çalışmalar saklanabilir.
  • Lokal dallanma sağlar (local branching)
  • Tüm işlemler lokal olarak yapılır.
  • Program boyutu küçüktür.
  • İşlem yapmadan önce işlem yapacapılacak alan üzerinde önizleme yapabilmenizi sağlar.
  • 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.
  • Öğrenmesi kolaydır.


Mercurial

Mercurial, ücretsiz versiyon kontrol yönetim aracıdır. Kullanıcılara süre sezgisel bir arayüz kullandırarak, her boyuttaki projesi için büyük avantaj sağlamaktadır. Subversion gibi kullanıcı tabanlı mimariye sahip değildir. Her kullanıcıya yerel bir kopya bırakır, bu sayede internetten bağımsız da çalıştırılabilir. Yapı tasarımı sayesinde revizyonlar arasındaki farkları kolayca algılayabilir, zaman içerinde kolayca eski versiyonlara dönülebilir.


Bazaar

Bazaar komut kümesi açısından CVS ve SVn’e oldukça benzemektedir. Hem dağıtık hem de sunucuya bağlı olarak çalışabilmektedir. Bazaar’ı diğer versiyon kontrol sistemlerinden ayıran en büyük özelliği farklı versiyon kontrol sistemleri ile çalışabilmesi ve dosya isimlerinde Unicode desteklemesidir.

VERSİYON KONTROLÜ

Versiyon Kontrolü Nedir?

Versiyon kontrolü kısaca, yazılım projelerinin kaynak kodlarının ya da oluşturulan dokümanların yönetimini yapılabilmesi ve yapılan değişiklikleri takip edebilmesidir. Oluşturulan kaynak 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.

Eğer bir takım halinde kod geliştiriliyorsa, kod paylaşımının kolaylıkla yapılabilmesi, revizyonların kontrol edebilmesi ve bir hata durumunda kodun eski haline geri dönebilmesi gerekir. İşte bu kısımda versiyon kontrol sistemleri bize bu olanakları sağlamaktadır.

Versiyon Kontrol Sistemleri Neden Kullanılmalıdır?

  • Birden fazla kişini aynı kod üzerinde çalışabilmesine olanak sağlar,
  • Eski kod versiyonları tutulur ve istediği zaman geri dönülebilir,
  • Yazılan kodların istenilen bölümlerine erişip sadece belirli kısımlarda değişiklik yapılabilmesi sağlar,
  • Sürümler arasındaki farklılıklar görülebilir,
  • Kod güvenli bir şekilde saklanır,
  • Farklı geliştirmeler için ayrı dallar açıp paralel geliştirme işlemi yapılabilir.

Bu sebeplerden dolayı versiyon kontrol sistemlerinin kullanılması önerilmektedir. Aksi takdirde basit görülebilecek bu işlemler proje yönetim sürecinde gecikmelere ve kargaşaya sebep olacaktır.

Yazılım Versiyonu Nedir?

Bir yazılım projesi ne yazık ki ilk yazıldığı halde müşteriye teslim edilememektedir. Daha müşteriye teslim edilmeden yapılan testler sonucu tespit edilen eksiklikler ve hatalar düzeltilerek daha kararlı bir yazılım oluşturulmaya çalışılmaktadır. Bu işlemler yazılım müşteriye teslim edildikten sonra da güncelleme ve bakım adımlarında devam etmektedir. Bu sayede daha kararlı, güvenli ve çıkan yeni teknolojilere uyumlu yazılımlar yaşam döngülerini devam ettirebilmektedirler.

Bu işlemler yapılırken, yapılan her işlemden sonra kaynak kod versiyon numarası değiştirilerek hem geliştiricilere hem de kullanıcılara yazılımda değişiklikler yapıldığının bilgisi verilmektedir. Bu şekilde bir numaralandırma yapıldığında yapılan hataların nasıl düzeltildiği de görülebilmektedir bu sayede kaynak kod içerisinde bulunan benzer bir blokta aynı hatalardan kaçınılması da sağlanmış olmaktadır.

Yazılım Versiyon Numaraları Ne Anlama Gelir?

Yazılım versiyon numarası temel olarak dört bölümden meydana gelir. Bu bölümlerin daha iyi anlaşılması açısından versiyon numarası verme sistemini bir örnek üzerinden açıklayacak olursak,
Örneğin versiyon numarası v2.5.0.2154 olan bir yazılımı ele alalım;
  • 2, versiyon major numarası,
  • 5, versiyon semi-major numarası,
  • 0, versiyon minor numarası,
  • 2154, versiyon build numarası,

olarak adlandırılmaktadır. Verilen bu versiyon numarası açıklamaları yazılım firmalarının kendi uyguladıkları yazılım geliştirme süreçlerine ve politikalarına göre değişiklikler gösterebilmektedir. Örneğin build numaraları genelde son kullanıcı tarafından görülmez ya da build numarası minor numarasına dahil edilmiş halde versiyon numarası verilmiş olabilir.

Versiyon Major Numarası

Major numarası bir yazılımın sahip olduğu temel özelliklerinin değişimini simgeler yani major numarası 2 iken 3 olmuş bir yazılımda hissedilebilir değişiklikler yapılmış demektir.Örneğin önceden bir işlemi 4 sn yede yapan bir program yeni versiyonunda 2 sn de yapıyor olabilir veya yeni bir kaç özellik eklenmiş olabilir.

Versiyon Semi-major Numarası

Bu numara yazılımdaki değişikliğin yazılım genel işleyiş mantığını değiştirmeden ek özellikler eklemek şeklinde yapılan değişiklikler olduğunu gösterir. Önceki versiyonlarda kullanılan özelliklerde bir değişiklik yoktur ve kullanıcı arayüzü aynı kalır.

Versiyon Minor Numarası

Minor numarası, program arayüzündeki işleyişi ve işlevselliği etkilemeyen küçük değişiklikleri ya da kullanıcılar tarafından farkedilmeyen bazı aksaklıkların değiştirilmesi anlamına gelir.

Versiyon Build numarası

Build numarası, yazılımda olan güvenlik açıkları buglar ve uyumluluk sorunlarının giderilmesi anlamına gelir.