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 .