Versiyon Kontrol Sistemleri (VCS), bir yazılım ekibinin zaman içinde kaynak kodundaki değişiklikleri yönetmesine yardımcı olan bir yazılım araçları kategorisidir. Proje dosyalarını, onların geçmişleri ile depolarlar. Ayrıca, zamanla kodu düzenlemeyi ve anlamanızı kolaylaştırırlar.
Yeni bir proje başladığında, sorulması gereken önemli sorulardan biri “hangi versiyon kontrol sistemi proje için uygundur; Git mi, SVN mi? ”
Git, bir kaynak kodu yönetimi ve dağınık çalışan revizyon kontrol sistemidir. SVN, bir revizyon kontrol ve yazılım versiyonlama sistemidir.
Önemle vurgulamamız gereken konu, tüm versiyon kontrol sistemlerinin tüm proje ve ekiplere uymamasıdır. En iyi yöntem, proje ve ekiplerin detaylarına bağlı olarak değişir. Bu nedenle, sorunun cevabı süreç ve projenin sonucu için önemlidir.
Subversion veya Apache Subversion olarak bilinen SVN, en popüler merkezi versiyon kontrol sistemini temsil eder. Merkezi bir sistem, tüm dosyaları ve geçmiş verilerini merkezi bir sunucuda depolar. Geliştiriciler değişikliklerini ‘commit’ ettikleri zaman, değişiklikler doğrudan merkezi sunucu deposuna yapılır.
SVN’nin genel bir revizyon numarası var, bu bir kaynak kodun anlık görüntüsüdür.
SVN’in aksine Git birden fazla repositori sunar: merkezi bir repository ve bir dizi yerel depo; dağınık. Bu yerel depolar, merkez repositorinin ve onun tüm geçmişinin kopyalarıdır.
Git iş akışının, SVN ile benzer olduğu söylenebilir ancak yerel makinede yerel bir depoya sahiptir. Local branchte çalışıldıktan sonra her şey yolunda ise, yapılan değişiklikler local branche commitlenmeye hazır demektir. Bu işlem gerçekleştirildikten sonra, local branch Merkez repositoriye pushlanabilir.


Distributed Model


Centralized Model


Aegis
Bazaar
Git
SVK


CVS
Apache Subversion
Vesta