Burada ve SO üzerinde DVCS depolarının merkezileştirilmiş karşı parçalarından yaklaşık olarak aynı veya daha az alan kullandığını birkaç tartışmada okudum. Kaçırmış olabilirim, ama bunun nedeninin iyi bir açıklamasını bulamadım. Kimse biliyor mu?
Burada ve SO üzerinde DVCS depolarının merkezileştirilmiş karşı parçalarından yaklaşık olarak aynı veya daha az alan kullandığını birkaç tartışmada okudum. Kaçırmış olabilirim, ama bunun nedeninin iyi bir açıklamasını bulamadım. Kimse biliyor mu?
Yanıtlar:
Kendi deneyimlerime göre, aşağıdaki ifadelerin hepsi doğrudur:
Ödeme konumunu (kendi içinde bir depo olan Git ile) karşılaştırırsanız, hikaye tamamen farklıdır:
İndirmeniz veya yüklemeniz gereken bayt miktarını karşılaştırırsanız, yine farklıdır.
Sonuçta, elmaları portakallarla karşılaştırıyorsunuz ve Subversion veya Git ile ne yapmak istediğinize bağlı olarak sonuç farklı olabilir.
@jk tam kopyaları veya ikili diffs'leri sordu ve bu soruya cevap veremedim. Son zamanlarda Jax 2012'de (ziyaret ettiğim) bir Git atölyesi veren Matthew McCullough'a sordum. Git'in iç çalışmasını detaylı bir şekilde açıklamak için zaman ayırdı (ona çok teşekkür ediyor) . Yani evet, orada çalışan bir sıkıştırma var (ve ben de bir microsoft ofis dosyası ile bir deney yapacağım ve bunu özü ile karşılaştıracağım), ama hayır, sıkıştırma tüm dosya üzerinde yapılır. Özünden alıntı:
Gevşek nesneler, her işlem sırasında sıkıştırılmış, ancak delta olmayan biçimde yazılır.
git gc
veya çok fazla gevşek nesne biriktirdiğinizde sormaktan ziyade, bunları delta sıkıştırmak için iyi adaylar bulur (git önceki sürümden farklı olabilir), deltaları bir "paket" içinde saklar ve gevşek nesneleri kaldırır.