Git, Mercurial ve Bazaar'ın göreli güçlü ve zayıf yanları nelerdir? [kapalı]


137

Buradaki insanlar Git, Mercurial ve Bazaar'ın göreli güçlü ve zayıf yanları olarak ne görüyor?

Her birini birbirleriyle ve SVN ve Perforce gibi sürüm kontrol sistemlerine karşı düşünürken, hangi konular dikkate alınmalıdır?

SVN'den bu dağıtılmış sürüm kontrol sistemlerinden birine geçiş planlarken hangi faktörleri göz önünde bulundurursunuz?


1
Mercurial ve Git arasında Windows'a özel bir karşılaştırma için şu soruya bakın: stackoverflow.com/questions/2550091/…
alexandrul

BTW, farklı DVCS sistemlerinin kullanım yüzdesini görmek istiyorum.
sergiol

Yanıtlar:


145

Git çok hızlı, çok iyi ölçekleniyor ve kavramları hakkında çok şeffaf. Bunun aşağı tarafı nispeten dik bir öğrenme eğrisine sahip olmasıdır. Bir Win32 bağlantı noktası kullanılabilir, ancak birinci sınıf bir vatandaş yoktur. Git karmaları kullanıcılara sürüm numaraları olarak gösterir; bu garantiler sağlar (tek bir karma her zaman tam olarak aynı içeriğe karşılık gelir; bir saldırgan algılanmadan geçmişi değiştiremez), ancak kullanıcı için hantal olabilir. Git, bu içerikler dosyalar arasında hareket etse ve dosyaları birinci düzey nesneler olarak görüntülese de dosya içeriklerini izleme konusunda benzersiz bir kavramı vardır, ancak dizinleri izlemez. Git ile ilgili bir başka sorun, birçok işlemin ( rebase gibi)) geçmişi değiştirmeyi kolaylaştıran (bir anlamda - bir karma tarafından atıfta bulunulan içerik asla değişmeyecektir, ancak bu karmaya yapılan referanslar kaybolabilir); bazı saflar (ben dahil) bunu çok sevmiyor.

Çarşı oldukça hızlıdır (sığ geçmişi olan ağaçlar için çok hızlıdır, ancak şu anda tarih uzunluğuyla zayıf ölçeklendirilmektedir) ve geleneksel SCM'lerin (CVS, SVN, vb.) Komut satırı arayüzlerine aşina olanlar için öğrenmesi kolaydır. Win32, geliştirme ekibi tarafından birinci sınıf bir hedef olarak kabul edilir. Farklı bileşenler için takılabilir bir mimariye sahiptir ve depolama biçimini sık sık değiştirir; bu, yeni özellikler (farklı kavramlara dayalı revizyon kontrol sistemleriyle entegrasyon için daha iyi destek) sunmalarını ve performansı artırmalarını sağlar. Bazaar ekibi, dizin izlemeyi ve yeniden adlandırma desteğini birinci sınıf işlevselliği dikkate alır. Global olarak benzersiz revizyon kimliği tanımlayıcıları tüm revizyonlar için kullanılabilirken, ağaç-yerel revoslar (standart revizyon numaraları, svn veya diğer daha geleneksel SCM'ler tarafından kullanılanlara benzer) revizyonları tanımlamak için içerik karmaları yerine kullanılır. Çarşı, geçmişin yerel sisteme kopyalanmak yerine uzak bir sunucuda tutulduğu ve gerektiğinde otomatik olarak ağ üzerinden yönlendirildiği "hafif kontroller" desteğine sahiptir; şu anda, bu DSCM'ler arasında benzersizdir.

Her ikisinin de bir çeşit SVN entegrasyonu vardır; bununla birlikte, bzr-svn, büyük ölçüde bu amaç için sunulan arka uç format revizyonları nedeniyle git-svn'den önemli ölçüde daha yeteneklidir. [2014'ten itibaren güncelleme: Üçüncü taraf ticari ürünü SubGit, SVN ve Git arasında bzr-svn ile sadakatle karşılaştırılabilen ve çok daha parlak bir çift yönlü arayüz sağlar; Bütçe ve lisans kısıtlamaları izin verdiğinde git-svn kullanımı üzerinde şiddetle tavsiye ediyorum ].

Mercurial'ı çok fazla kullanmadım ve bu yüzden detaylı olarak yorum yapamıyorum - Git gibi, revizyonlar için içerik karma adresleme olduğunu unutmayın; Git gibi, dizinleri birinci sınıf nesneler olarak kabul etmez (ve boş bir dizin depolayamaz). Bununla birlikte, Git dışında diğer DSCM'lerden daha hızlıdır ve IDE entegrasyonuna (özellikle Eclipse için) rakiplerinden daha iyi sahiptir. Performans özellikleri (Git'inkinden sadece biraz geride kalan) ve üstün çapraz platform ve IDE desteği göz önüne alındığında, Mercurial önemli sayıda win32 merkezli veya IDE'ye bağlı üyeye sahip takımlar için cazip olabilir.

SVN'den geçişle ilgili bir endişe, SVN'nin GUI ön uçlarının ve IDE entegrasyonunun dağıtılmış SCM'lerin herhangi birinden daha olgun olmasıdır. Ayrıca, şu anda SVN ile ön sipariş komut dosyası otomasyonunu yoğun bir şekilde kullanıyorsanız (yani, bir işleme devam etmeden önce birim testlerinin geçmesini gerektiren), muhtemelen paylaşılan dallarınıza birleştirme isteklerini otomatikleştirmek için PQM'ye benzer bir araç kullanmak isteyeceksiniz .

SVK, Subversion'u destek mağazası olarak kullanan ve SVN merkezli araçlarla oldukça iyi bir entegrasyona sahip bir DSCM'dir. Bununla birlikte, diğer büyük DSCM'lerden (hatta Darcs'lardan) önemli ölçüde daha kötü performans ve ölçeklenebilirlik özelliklerine sahiptir ve tarihin uzunluğu veya dosya sayısı açısından büyük ölçüde büyümekle yükümlü projeler için kaçınılmalıdır.

[Yazar hakkında: Git ve Perforce'ı iş için, Bazaar'ı da kişisel projelerim ve gömülü kütüphane olarak kullanıyorum; işveren kuruluşumun diğer kısımlarında Mercurial kullanılıyor. Önceki bir yaşamda SVN etrafında çok sayıda otomasyon yaptım; ondan önce GNU Arch, BitKeeper, CVS ve diğerleriyle deneyimim var. Git ilk başta oldukça rahatsız ediciydi - GNU Arch'ın, ağır iş ortamı seçimine benzemediğini, kullanıcının iş akışı seçimine uymak için oluşturulmuş araç setlerinin aksine - ama o zamandan beri oldukça rahatım o].


Heya. Sadece cscvs'in hala Launchpad kod ithalatını çalıştırmak için kullanıldığını bilmek istiyorum ve orada çalıştığımda Canonical versiyonunu yayınladım.
ddaa

19

Ogre 3D projesinin Steve Streeting'i (28.09.2009) , Git, Mercurial ve Bazaar'ın harika ve eşit bir şekilde karşılaştırıldığı bu konuda bir blog girişi yayınladı .

Sonunda, her üçü de güçlü ve zayıf yanlarını bulur ve net bir kazanan olmaz. Artı tarafta, hangisiyle gideceğinize karar vermenize yardımcı olacak harika bir tablo veriyor.

alternatif metin

Onun kısa bir okuma ve kesinlikle tavsiye ederim.


@gavenkoa, çarşı SVN'den gelenlere sezgisel. Git'ten geliyorsanız, çarşı temellerine daha yakın, ancak arayüzünden çok, çok uzak bir zihinsel modeliniz var. .
Charles Duffy

2
@CharlesDuffy Mercurial'ın komutlar için sezgisel isimleri var ve ölmedi (Çarşı gelişimi 2 yıl önce durdu ve Kanonik reddetti, evet Git + github DVCS oyunu kazandı ). Git adlandırma şemasını asla anlamadım, bu yüzden kişisel olarak HG'yi tercih ediyorum. Git-severler adamları ile kavga etmek çok zor ((
gavenkoa

@gavenkoa, bzr'in çekirdek komut isimleri SVN'lerle eşleşiyor, bu yüzden yine de, onlar hakkında (SVN kullanıcısı için) neyin kasıtsız olabileceğini göremiyorum. Evet, elbette, gelişme öldü. Ben bzr'ın kullanım için pratik olduğunu iddia etmiyorum - sadece yapılan belirli eleştirilerin temelden uzak olduğunu.
Charles Duffy

1
@gavenkoa, ... Ben de yazılımın geliştiricileri karşı oldukça büyük bir kin olmasına rağmen BitKeeper yönlerini savunmak bilinmektedir / sahipleri (Larry olsa da temeli alenen ... belgelenmiş yoktu onların sonunu tanımlamak için bir kez beni dediğimiz oldu ve şimdi her iki tarafı da anladığımı söyleyeceğim). Bir SCM'yi savunduğum için, aslında insanların onu kullanmasını tavsiye ettiğim anlamına gelmez. :)
Charles Duffy

15

Buradaki insanlar Git, Mercurial ve Bazaar'ın göreli güçlü ve zayıf yanları olarak ne görüyor?

Bence Git gücü, altta yatan temiz tasarımı ve çok zengin özellikler kümesidir. Ayrıca çok şubeli depolar ve şubedeki ağır iş akışlarını yönetmek için en iyi desteği düşünüyorum. Çok hızlıdır ve küçük bir havuz boyutuna sahiptir.

Yararlı olan ancak bunlara alışmak için biraz çaba gerektiren bazı özelliklere sahiptir. Bunlar, daha karmaşık durumlarda daha iyi birleştirme çözünürlüğü, artımlı teslim etme ve kirli ağaçla işlemeye izin veren çalışma alanı ve havuz veritabanı arasında görünür ara evreleme ara (indeks); iyi çalışan ve sadece toptan yeniden adlandırmalar değil, dosyalar arasında kod hareketini izleyebilen bir suçlama (açıklama) sağlayan bir tür dosya kimliği kullanarak izlemek yerine, benzerlik sezgisel olarak yeniden adlandırma ve kopyaları algılama .

Dezavantajlarından biri, MS Windows desteğinin geride kalması ve dolu olmamasıdır. Algılanan diğer bir dezavantaj, örneğin Mercurial kadar iyi belgelenmemiş olması ve rekabetten daha az kullanıcı dostu olması, ancak değişmesidir.

Bence Mercurial gücü, iyi MS Windows desteğinde iyi performansında ve küçük depo boyutunda yatmaktadır.

Ana dezavantaj bence yerel şubelerin (tek bir depoda birden fazla şube) hala ikinci sınıf vatandaş olması ve tuhaf ve karmaşık bir şekilde etiket uygulamasıdır. Ayrıca dosya yeniden adlarıyla uğraşma biçimi yetersizdi (ancak bu uzunluk değişti). Mercurial, ahtapot birleşmelerini desteklemez (ikiden fazla ebeveyn ile).

Duyduğum ve okuduğum ana pazarın avantajlarından, merkezi iş akışı (aynı zamanda dezavantaj olan, merkezi kavramların olmaması gerektiği yerde görünür) kolay destek, hem dosyaların hem de dizinlerin adlarını takip etmesidir.

Başlıca dezavantajı, uzun doğrusal olmayan geçmişe sahip büyük depolar için performans ve havuz boyutudur (performans en azından çok büyük depolar için iyileştirilmemiştir), varsayılan paradigmanın havuz başına bir çiftlik olmasıdır (yine de verileri paylaşmak için ayarlayabilirsiniz) ve merkezi kavramlar (ama duyduğumdan da değişiklikler).

Git C, kabuk komut dosyaları ve Perl ile yazılmıştır ve yazılabilir; Mercurial, C (performans için çekirdek) ve Python ile yazılmıştır ve uzantılar için API sağlar; Bazaar Python ile yazılmıştır ve eklentiler için API sağlar.


Her birini birbirleriyle ve SVN ve Perforce gibi sürüm kontrol sistemlerine karşı düşünürken, hangi konular dikkate alınmalıdır?

Subversion (SVN), Perforce veya ClearCase gibi sürüm kontrol sistemleri merkezi sürüm kontrol sistemleridir. Git, Mercurial, Bazaar (ve ayrıca Darcs, Monotone ve BitKeeper) dağıtılmış sürüm kontrol sistemleridir. Dağıtılmış sürüm kontrol sistemleri çok daha fazla iş akışı aralığına izin verir. "Hazır olduğunda yayınla" seçeneğine izin verirler. Dallanma ve birleştirme ve dal ağır iş akışları için daha iyi destekleri vardır. Onlardan kolay bir şekilde katkıda bulunabilmek için taahhüt erişimi olan kişilere güvenmeniz gerekmez.


SVN'den bu dağıtılmış sürüm kontrol sistemlerinden birine geçiş planlarken hangi faktörleri göz önünde bulundurursunuz?

Dikkate almak isteyebileceğiniz faktörlerden biri, SVN ile etkileşime girme desteğidir; Git'in git-svn, Çarşının bzr-svn ve Mercurial'ın hgsubversion uzantısı var.

Feragatname: Ben Git kullanıcısı ve küçük zaman katılımcısıyım ve git posta listesini izleyin (ve katılın). Mercurial ve Bazaar'ı yalnızca belgelerinden, IRC ve posta listelerinde çeşitli tartışmalardan ve çeşitli sürüm kontrol sistemlerini (bazıları Git Wiki'deki GitComparison sayfasında listelenen) karşılaştıran blog yayınlarından ve makalelerden biliyorum .


FYI - bzr-svn git-svn'den çok daha yeteneklidir, çift yönlüdür: "bzr branch svn: // ..." çalıştırabilir ve daha sonra değişiklikleri svn sunucusuna geri döndürebilirim - burada diğer bzr istemcilerinin tanıyacağı meta verilerle depolanır.
Charles Duffy

2
Ben bir hg devim ve Git tasarımına biraz bakıyorum. Her ikisinin de dağıtılmış bir ayar için tek mantıklı bir şekilde geçmişe baktıklarına sevindim: hem yüksek düzeyde hem de taahhütlerin asiklik bir grafiğidir ve daha düşük bir seviyede her ikisi de hangi referans dosyalarına (Git'teki lekeler) ). Mercurial'ın anonim şubeleri vardır (ki bu, AFAIK Git'te mevcut değildir), işaretlenmiş şubeleri vardır (Git şubelerine çok benzer, ancak push / pull yok) ve şubeleri adlandırdı (şube adı kaydedildi - bunlar da kaydedilmedi Git).
Martin Geisler


7

Mercurial ve Bazaar yüzeye çok benziyor. Her ikisi de çevrimdışı dağıtılmış ve birden çok dalı birleştiren gibi temel dağıtılmış sürüm kontrolü sağlar, her ikisi de python ile yazılır ve her ikisi de git'ten daha yavaştır. Kodu inceledikten sonra birçok fark vardır, ancak günlük rutin işleriniz için Mercurial'ın biraz daha fazla momentuma sahip gibi görünse de bunlar aynıdır.

Git, girişimciler için değil. Hem Mercurial hem de Bazaar'dan çok daha hızlıdır ve Linux çekirdeğini yönetmek için yazılmıştır. Bu üçün en hızlısıdır ve aynı zamanda üçün en güçlüsüdür. Git'in günlük ve işleme düzenleme araçları benzersizdir. Bununla birlikte, aynı zamanda kullanımı en karmaşık ve en tehlikelidir. Özellikle git'in iç işleyişini anlamadıysanız, bir taahhüdü kaybetmek veya bir havuzu mahvetmek çok kolaydır.


10
Mercurial, Git'le gerçekten eşit. Performans büyük bir fark değil. Ancak çarşı, Mercurial ve Git'ten daha yavaştır.
Joshua Partogi

@jpartogi - Bazaar'ın performans sayıları rakiplerinden çok daha hızlı gelişiyor, bu yüzden bu tür bir iddiada bulunmaya dikkat ediyorum - özellikle güncel sürümlerde önizleme olarak sunulan ve 2.0'da varsayılan olması planlanan depolama yeniden düzenleme ile.
Charles Duffy

6

Son zamanlarda Python geliştiricileri tarafından yapılan karşılaştırmaya bir göz atın: http://wiki.python.org/moin/DvcsComparison . Mercurial'ı üç önemli nedenden dolayı seçtiler:

Mercurial ile gitme seçimi üç önemli nedenden dolayı yapıldı:

  • Küçük bir araştırmaya göre, Python geliştiricileri Mercurial'ı Pazara veya Git'e göre daha fazla ilgilendiriyor.
  • Mercurial, python-dev 'kendi dogfood'larını yeme eğilimi' ile uyumlu olan Python'da yazılmıştır.
  • Mercurial bzr'den önemli ölçüde daha hızlıdır (çok daha küçük bir fark olsa da git'ten daha yavaştır).
  • Mercurial, SVN kullanıcıları için Bazaar'dan daha kolaydır.

( http://www.python.org/dev/peps/pep-0374/ adresinden )


1
Mozilla ve Sun da Mercurial'ı aynı nedenden dolayı kullanıyor.
Joshua Partogi

2
bzr de Python'da yazılmıştır, gerçekten hg'den daha yavaştır, ancak hızla daralan bir marjla - hem Bazaar hem de Mercurial'ın bir kullanıcısı olarak, "öğrenmesi daha kolay" iddiasına katılıyorum.
Charles Duffy

1
Hepsi hala evrim geçiriyor. DCVS'nin başlaması için Bazaar'a karar verdim çünkü en kolay (ama içinde çok fazla değil) ve Launchpad.net olduğunu düşündüm. Oldukça yavaştı. OSX'teki Git iyi görünüyor ancak Windows desteği yetersiz. Python ve Google projeleri artık benimsediğinden ve TortoiseHg nedeniyle Mercurial ile değiştiriyorum. Bence Mercurial Çarşı üzerinde kritik bir kitle kazanıyor ve orada olacak. Ve Git her zaman Posix'e odaklanmış kendi işini yapacak, bu yüzden asla gerçekten baskın olmayacak.
Nick

5

Sun , Solaris kod tabanı için Sun Teamware VCS'nin yerini alacak adaylar olarak git , Mercurial ve Bazaar'ı değerlendirdi . Çok ilginç buldum.


3
bu değerlendirmeler biraz modası geçmiş, yeni sürümler burada belirtilen bazı dezavantajları değiştirmiştir.
hayalci

2

Çarşıda çok önemli bir eksik şey cp. SVN'de olduğu gibi aynı geçmişi paylaşan birden fazla dosyanız olamaz, örneğin buraya ve buraya bakın . Cp kullanmayı düşünmüyorsanız, bzr svn için harika (ve kullanımı çok kolay) bir alternatiftir.


Tasarımda bu eksik - cp, bir kopyanın ve değişikliklerin olduğu bir dal ile değişikliklerin olduğu ancak bir kopyasının olmadığı başka bir dal arasında birleştirme sırasında Doğru Şey'i yapmanın zor veya imkansız olduğu birkaç durum oluşturulmadan eklenemez. .
Charles Duffy

Tabii, ancak farkında olunması gereken bir şey - ve birçok kullanım durumu için çok yararlı bir özellik olacaktır (bir dosyayı iki farklı dosyaya bölmek ve her ikisi için geçmişi korumak gibi). Aslında bazı projelerde yıkımı kullanmamın tek nedeni - birleştirme ilgisiz ancak kopyanın olmadığı
Davide

2

Bir süredir çok sevdiğim Pazar'ı kullanıyordum ama sadece daha küçük projelerdi ve o zaman bile oldukça yavaştı. Öğrenmesi çok kolay, ama süper hızlı değil. Yine de çok x-platform.

1.6 sürümünden beri çok sevdiğim Git'i kullanıyorum, bu komutları kullanmak için diğer VCS'lere çok daha benziyordu.

DVCS kullanma deneyimim için temel farklılıklar olduğunu düşünüyorum:

  1. Git en canlı topluluğa sahiptir ve Git hakkındaki makaleleri görmek yaygındır
  2. GitHub gerçekten sallanıyor. Launchpad.net iyi, ama Github'un keyfi gibi bir şey yok
  3. Git için iş akışı araçlarının sayısı harika. Her yere entegre edilmiştir. Bzr için bazıları var ama neredeyse çok değil veya bakımlı değil.

Özetle DVCS'de dişlerimi keserken Bzr harikaydı ama şimdi Git ve Github'dan çok memnunum.


"Şimdi" çok mutlu demek yerine "çok mutlu" demek değil mi?
Charles Duffy

Teşekkürler Charles! Dile getirecek bir slip Bit orada :)
sh1mmer

1

Bu, bu küçük metin kutularından birine yazmanızın çok zaman alacağı bağlama büyük ölçüde bağlı büyük bir sorudur. Ayrıca, bunların üçü de çoğu programcının yaptığı olağan şeyler için kullanıldığında büyük ölçüde benzer görünür, bu nedenle farklılıkları anlamak bile oldukça ezoterik bir bilgi gerektirir.

Bu araçlar hakkındaki analizinizi daha spesifik sorularınız olan noktaya kadar ayırabilirseniz, muhtemelen çok daha iyi yanıtlar alacaksınız.


Belki bir meta-soru: sorulması gereken sorular ve dikkate alınması gereken faktörler nelerdir?
Jordan Dea-Mattson

1

Bazaar IMHO'yu öğrenmekten daha kolay. Git'in github.com'da güzel bir desteği var.

Bence her ikisini de kullanmaya ve hangisinin size en uygun olduğuna karar vermelisiniz.


1
Mercurial, Bazaar kadar kolay, git'e göre nispeten hızlı ve Bitbucket'te güzel bir desteğe sahip. Peki başka ne sorabilirsiniz?
Joshua Partogi

1

Buradaki insanlar Git, Mercurial ve Bazaar'ın göreli güçlü ve zayıf yanları olarak ne görüyor?

Bu çok açık bir soru, flamebait ile çevreleniyor.

Git en hızlı, ancak her üçü de yeterince hızlı. Çarşı en esnek olanıdır (SVN depoları için şeffaf okuma-yazma desteğine sahiptir) ve kullanıcı deneyimine çok önem vermektedir. Mercurial ortada bir yerdedir.

Her üç sistemde de çok sayıda fanboy bulunur. Ben şahsen bir Pazar fanatıyım.

Her birini birbirleriyle ve SVN ve Perforce gibi sürüm kontrol sistemlerine karşı düşünürken, hangi konular dikkate alınmalıdır?

İlki dağıtılmış sistemlerdir. İkincisi merkezi sistemlerdir. Buna ek olarak, Perforce tescilli, diğerleri konuşmada olduğu gibi serbest .

Merkezileştirilmiş ve merkezi olmayan, kendi kategorisinde bahsettiğiniz sistemlerden çok daha önemli bir seçimdir.

SVN'den bu dağıtılmış sürüm kontrol sistemlerinden birine geçiş planlarken hangi faktörleri göz önünde bulundurursunuz?

İlk olarak, TortoiseSVN için iyi bir ikame eksikliği. Çarşı kendi Kaplumbağa varyantı üzerinde çalışıyor olsa da, Eylül 2008 itibariyle henüz orada değil.

Daha sonra, kilit kişileri merkezi olmayan bir sistem kullanmanın çalışmalarını nasıl etkileyeceği konusunda eğitmek.

Son olarak, sorun izleyiciler, gecelik oluşturma sistemi, otomatik test sistemi vb. Gibi sistemin geri kalanıyla entegrasyon.


1
Kayıt için, mevcut sayfa şunu belirtiyor: "Bazaar 1.6 sürümünden beri, TortoiseBZR resmi yükleyiciye dahil edildi", bu yüzden olgunlaşmış gibi görünüyor.
PhiLho

1

En büyük sorununuz, bunların Dağıtılmış SCM'ler olması ve kullanıcının zihninde biraz değişiklik gerektirmesidir. İnsanlar fikre alıştıktan sonra teknik detaylar ve kullanım şekilleri yerine geçecek, ancak özellikle kurumsal bir ortamda bu ilk engeli hafife alma. Unutmayın, tüm problemler insanların problemidir.


1

ddaa.myopenid.com geçerken bahsetti, ama tekrar bahsetmeye değer olduğunu düşünüyorum: Çarşı uzak SVN depolarını okuyabilir ve yazabilir. Bu, ekibin geri kalanı Subversion'u kullanırken Pazarı yerel olarak konsept kanıtı olarak kullanabileceğiniz anlamına gelir.

DÜZENLEME: Hemen hemen tüm aracı artık sahip bazı SVN ile etkileşime yol, ama şimdi kişisel deneyime sahip git svnçalışır son derece iyi. Minimal hıçkırıklarla aylardır kullanıyorum.


git de svn arayüzü var, ama henüz düzgün kullanmak için bir şansım olmadı - utsl.gen.nz/talks/git-svn/intro.html
Cebjyre 17:58

1

Git üzerinde Linus Torvalds'ın iyi videosu var. Git'in yaratıcısı bu yüzden teşvik ettiği şey bu ancak videoda dağıtılmış SCM'lerin ne olduğunu ve neden merkezi olanlardan daha iyi olduklarını açıklıyor. Git (mercurial'ın iyi olduğu kabul edilir) ve cvs / svn / performance karşılaştırması iyi bir şeydir. Seyirciden dağıtılmış SCM'ye geçişle ilgili sorular da var.

Bu materyali aydınlatıcı buldum ve dağıtılmış SCM'ye satıldım. Ama Linus'un çabalarına rağmen seçimim mercurial. Nedeni bitbucket.org, github'dan daha iyi (daha cömert) buldum.

Burada bir uyarı sözü söylemeliyim: Linus oldukça agresif bir tarza sahip, bence komik olmak istiyor ama gülmedim. Bunun dışında, dağıtılmış SCM'lerde yeniyseniz ve SVN'den taşınmayı düşünüyorsanız video harika.

http://www.youtube.com/watch?v=4XpnKHJAok8


0

Dağıtılmış sürüm kontrol sistemleri (DVCS'ler) Merkezi VCS'lerden farklı sorunları çözer. Bunları karşılaştırmak çekiçleri ve tornavidaları karşılaştırmak gibidir.

Merkezi VCS sistemleri, Kutsanmış ve bu nedenle İyi olan Tek Bir Gerçek Kaynak olması amacıyla tasarlanmıştır. Tüm geliştiriciler bu kaynaktan çalışır (ödeme yapar) ve ardından değişikliklerini ekler (taahhüt eder), bu da benzer şekilde Blessed olur. CVS, Subversion, ClearCase, Perforce, VisualSourceSafe ve diğer tüm CVCS'ler arasındaki tek gerçek fark, her ürünün sunduğu iş akışı, performans ve entegrasyondadır.

Dağıtılmış VCS sistemleri, bir havuzun diğeri kadar iyi olması ve bir havuzdan diğerine bir araya gelmesi amacıyla başka bir iletişim şeklidir. Depoya güvenilmesi gereken herhangi bir anlamsal değer, yazılımın kendisi tarafından değil, dışarıdan süreç tarafından dayatılır.

Bir tür veya diğerini kullanma arasındaki gerçek seçim örgütseldir - projeniz veya kuruluşunuz merkezi kontrol istiyorsa, bir DVCS başlangıç ​​değildir. Geliştiricilerinizin merkezi bir depoya güvenli geniş bant bağlantıları olmadan tüm ülkede / dünyada çalışması bekleniyorsa, DVCS muhtemelen sizin kurtuluşunuzdur. Her ikisine de ihtiyacınız varsa, fsck'd.


CVS, SVN ve VisualSourceSafe (isim olarak adlandırılır) arasında, faydaları üzerinde ciddi etkisi olan çok önemli farklılıklar vardır ve bunlar sadece iş akışı ve / veya entegrasyon sorunları değildir.
Murph

Bunların üçünü de kullandım ve teknik olarak haklısınız, ancak üst düzey bir bakış açısından cevabım da geçerli. Birden fazla geliştirici için Sürüm Kontrolü bir organizasyon aracıdır; araç kuruluşun ihtiyaçlarını karşıladığı sürece, uzun vadede önemli olan budur.
Craig Trader
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.