git vs Subversion - artıları ve eksileri [kapalı]


11

Uzun yıllardır SVN kullanıcısıyım ve bundan tamamen memnun olduğumu söyleyemem. Birkaç gün önce eşim git'e "daha iyi performans, daha kolay birleştirme ve dallanma" olduğunu söyleyerek bakmamı istedi.

Bazı git vs SVN karşılaştırma makaleleri okuyordum ve insanlar her iki sürüm kontrol sistemini kullanarak artılarını ve eksilerini özetleyebilir eğer mutlu olurdu.

Şimdi bir sistemden diğerine geçen ve öznel görüşler duyan insanlara bakıyorum.

SVN'nin çalışma şeklini gerçekten sevdiğimi biliyorum, insanların ödeme yapabileceği tek bir merkezi depoya sahibim, ondan canlı bir geliştirme kopyası ve canlı bir üretim kopyası dağıtabileceğimi bilerek, ancak bazen çatışma veya diğer hataları sıralayan baş ağrılarımız var ve bir dosyanın geçmişini her farklılaştırmamız veya incelememiz gerektiğinde, ele alacağımız ağ gecikmesine sahibiz.

Diğer yandan, dağıtılmış bir platforma sahip olmak da baş ağrısına benziyor, girişleri nasıl kontrol edebilirsiniz? ittiğiniz ve güncellediğiniz bir merkezi deponuz var mı?

Konuya biraz daha ışık tuttuğunuz için teşekkür ederiz.

Yanıtlar:


15

Bir sistem yöneticisinin algılamasından veya programcıdan iki aracı karşılaştırmaya mı çalışıyorsunuz? Buna bir programcı perspektifinden bakıyorsanız, bunu stackoverflow'da sormalısınız. Ya da daha iyisi, belki de " git svn " hakkında sorulanlara bakmalısınız .

Git ve svn ile ilgili olan şey, bunun bir ya / ya da öneri olmamasıdır. Bir SVN deposu çalıştırabilirsiniz ve geliştiricilerin git'in belirli bir durumda daha iyi bir araç olduğunu düşünüyorlarsa onunla etkileşim kurmak için git-svn'yi kullanabilirler .


2

Git üzerinde yıkılacak gerçek bir profesyonel yok. Git dağıtılırken, herkes uzaktan izleme kollarını kullanarak merkezi bir depodan çalışabilir. git daha hızlı, daha esnek ve birleştirme aslında işe yarıyor. Ayrıca, çevrimdışı olarak gerçekçi bir şekilde çalışabilirsiniz, ancak altyazı ile, varsa değişiklik yapamazsınız Git'te bireysel taahhütlerle daha kolay çalışabilirsiniz, tek bir taahhüt kimliği svn'deki deponun durumunu temsil eder.

Erişim, git sunucusundaki kullanıcı / grup hesapları tarafından (kaynakların uygun şekilde ayarlanması için 'git init --bare --shared' ile başlangıç ​​havuzunu başlatmanız veya ssh tuşlarını kullanarak denetlenir. Çok parçalı erişim kontrolü, bir üçüncü taraf eklentisi olan 'gitoz' kullanılarak ayarlanabilir.

Svn'ye alıştığınız zaman git ile çalışmaya alışmak biraz zaman alır (bunu sadece ofisimde geçirdik), ama git çok daha güçlü.

Harika bir izlenime ihtiyacınız varsa, http://progit.org adresine bakın - açık kaynak kitabın tam çevrimiçi bir kopyasıdır.


svn git'ten daha büyük dosyaları işleyebilir
Joshua

Git'in maksimum dosya boyutuna sahip olduğunu bilmiyordum - sınır nedir?
Aaron Brown

2
Çoğunlukla Git, her çalışan kopyada geçmişi taşıdığından, büyük, yoğun bir şekilde düzenlenmiş bir dosyanın çok yer kaplayacağı düşünülmektedir. Büyük dosya aslında değişmiyorsa, sorun değil
Phil Miller

Joshua yorumunun yanıltıcı olduğunu söyleyebilirim. Teslim alınan dosyalar hem SVN hem de git için aynı boyuttadır. Ne olacağı, git repo bilgilerinin bir kopyasını yerel olarak sakladığından, dosyaları düzenledikçe tüm dosyalar için gereken toplam disk alanı artı repo geçmişinin büyüyeceği, ancak SVN için bu alan düzeltildi (repo geçmişi sabit olmadığından) yerel olarak depolanır).
Walter

1

Ekibimde kontrol sürüm sistemlerimizi svn'den git'e değiştirme ortasındayız. Git'in biraz daha sert bir öğrenme eğrisi var, bu yüzden onu tanımaya başladım ve sonra geliştiricilere nasıl kullanacaklarını öğrettim. Dağıtılmış bir kontrol versiyonu sistemlerinden tüm avantajları bilmeleri gerekir: çoklu dallar, merkezi depo, hız vb.

Sizin gibi, sitelerimizi dağıtmak için bir sistemimiz vardı, bu nedenle, değişikliklerin geliştiricilerin makinelerine ve makinelerine aktarıldığı bir git merkezi sunucusu gibi bir şey tutuyoruz. Sitelerimiz bu "merkezi sunucudan" değişiklikleri alır ve dağıtım sürecinin geri kalanı svn kullanan ile benzerdir.

Küçük sitelerimizi taşımaya ve yeni siteler gibi ana siteler için yeni git depoları oluşturmaya başlayarak svn ve git depolarını karıştırmaya çalışmadık. Erişim ssh tuşları ile yönetilir. Ayrıca web arayüzü olarak gitweb kullanıyoruz (svn sistemimiz http tabanlı)

İşe yarıyor, bu bir günden diğerine bir değişiklik değil ve geliştiricilerin bu değişikliği bir rahatsızlık olarak değil, sonunda kendi sistemimizi geliştirecek bir araç öğrenmek için yeni bir beceri almayı deniyoruz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.