Git mi ? Subversion mı ?

 

Senelerden beri subversion kullanıyorum ve açıkçası seviyorum. Subversion versiyon kontrol  sistemi basit, etkili ve en önemlisi yeni başlayanlar için öğrenme eğrisi çok dik değil yani çabuk öğrenilebilir.

Git versiyon kontrol sisteminin  yıldızı parlıyor,  peki neden ? Git’in ön plana çıkmasının en büyük iki sebebi bence

Yanlış anlamayın Git’e kötü demedim sadece yıldızının parlamasının kendimce sebeplerini sıraladım.  Git ile subversion arasındaki farklar nedir ? Neden Git daha iyi ? Ya da daha kötü ?

Aslında Git daha iyi değil (kötü de değil) sadece farklı. Evet farkı ise merkezi olmaması, yani kodların içerisinde bulunduğu depo (repository) merkezi bir tek noktada değil, dağıtık.

Eğer Git kullanıyorsanız bu şu anlama geliyor, projenin kodlarını alıp değiştirip İnternet bağlantınızın olmadığı anda bile değişen kodu içeri atabilirsiniz (commit).  Hayal edin vapurda yolculuk yaparken kodunuzu değiştirin, içeri atın (commit), yada kodun tarihi geçmişini inceleyin. Gayet rahat. İnternet bağlantısına kavuştuğunuz noktada sizdeki değişiklikleri başka bir kod deposuna (repository) aktarabilirsiniz.

Bu özellik kulağa çok hoş geliyor ve açık kaynak dünyası için biçilmiş kaftan. Git projesinin başlamasının sebebi Linux çekirdeği geliştiren yüzlerce çekirdek geliştiricinin daha rahat bir ortamda çalışmasını sağlamak olarak düşünüyorum.

Git’in iyi yanlarını saymaya devam edelim.  Çok övülen özelliklerinden biri de kaynaştırma (merge)  ve dallandırma (branching)  işlemlerinin çok etkili ve hızlı bir şekilde yapabiliyor olması. Ayrıca 1000 adet dosya bulunan bir projeyi 1-2 saniyede indirebiliyor (bu özelliği gerçekten harika). Kısacası Git hızlı. Kaynaştırma takibini çok iyi yapabiliyor, gerçi Subversion 1.5 içerisinde de bu özellik var.

Git için eskiden IDE entegrasyonları fazla değildi ama artık öyle değil. Ayrıca Git işlemlerini kolaylaştırıcı ürünlerde mevcut.

Kısacası Git ile pratikte her şeyi çevrimdışı (offline) olsanız bile yapabilirsiniz çünkü herkesin kendi kod deposu (repository) mevcut. Ayrıca Subversion’ın yaptığı gibi her dizine .svn dizini oluşturmuyor sadece bir tane .git dizini oluşturuyor- ki bence Subversion’ın en sinir bozucu özelliklerinden biri bu.

Peki Git’in kötü yanları nedir ? Bu elbette bakış açılarına göre değişiklik gösterebilir ama bence :

  • Öğrenme hiç kolay değil. Subversion’a göre kesinlikle daha zor.
  • Hata mesajları hiç arkadaş canlısı gibi değil, bir anlam çıkartmak zaman istiyor.
  • Kurulumu yani ayağa kaldırması Subversion’a göre daha zor. Değişik yeni kavramlara alışık olmanız gerekiyor.

Subversion basit ve bu basitliği en büyük silahı. Ayrıca kendi etrafında çok iyi araçlar mevcut (örneğin : TurtoiseSVN – evet biliyorum TurtoiseGit de var ama bence Subversion hala çok kolay ).

Git’de yardımcı bir ara birim/araç olmadan işlerin konsoldan (siyah pencere) yapmanız hiç de kolay olmayabilir, komutları çok.

Versiyon kontrol sistemlerini sadece kodcular mı kullanıyor ? Elbette hayır.  Dosyasını versiyon kontrol sisteminde tutan bir sürü  kodcu olamayan kişi var. Bu kişiler için Git hiç uygun değil çünkü bu kodcu olamayan kişiler için çevrimiçi(online) veya çevrimdışı(offline) olması sanırım umurlarında bile olmayabilir çünkü özellikle öğrenme süresi göz önüne alındığında bu tür firmaların Subversion’dan Git’e geçmeleri ciddi bir maliyet olacaktır.

Özet olarak içinde bulunduğunuz projeye ve proje takımına göre tercih yapmanız en uygunu olacaktır.

3 Comments

Post a Comment

Comment
Name
Email
Website