SORU
12 HAZİRAN 2009, Cuma


Ne Gıt dosya Limitleri (sayı ve boyutu)?

Herkes dosya sayısı ve dosya boyutu Gıt sınırlarının ne olduğunu biliyor mu?

CEVAP
12 HAZİRAN 2009, Cuma


Linus himself Bu mesajı diğer bazı sınırlar size yardımcı olabilir

[...] CVS, yani gerçekten çok fazla "bir dosya odaklı olmak biter hiç bir zaman" modeli.

Bir milyon dosya olabilir, bu da güzel, ve sadece kontrol edin birkaç tanesi dışında - hiç bilebakındiğer etkileri 999,995 dosyaları.

Git temelde asla gerçekten daha az bütün repo bakar. Sen bile işler biraz (yani sadece bir bölümünü kontrol et, ya da geçmiş git. geriye sadece bir bit), gıt biter yine de her zaman her şeyi umursamamayı, ve bilgi taşımak.

Eğer bir şeye bakmak zorlarsan gıt ölçekler çok kötü yani büyükdepo. Bölüm olmasına rağmen gerçekten tamir edilebilir olduğunu sanmıyorum muhtemelen artırabilir.

Ve evet, var "büyük dosya" sorunları. Ben gerçekten ne olduğunu bilmiyorum büyük dosyaları hakkında. Onları rezil olduk, biliyorum.

Bakın daha benim other answer: sınırı ile Git her depoyu gerekir temsil eden bir "coherent set of files", "sistem" in kendisi (değil tag "kısmı deposu").
Eğer sistem (ama inter-bağımlı) özerk bir kısmı ise, kullanmanız gerekirsubmodules.

Talljoe's answer, gösterildiği gibi bir limit olabilirsistem(çok sayıda dosya), ama eğer sen anlamak doğanın Gıt (hakkında veri tutarlılık temsil SHA-1 anahtarlar), olur fark gerçek "sınır"kullanımıbir: ben.e, mağaza çalışmamalıher şeyiher zaman ya da her şeyin etiketini geri almak için hazır değilsen Git deposu. Bazı büyük projeler için, hiçbir mantıklı olur.


Bir daha derinlemesine gıt sınırları bakın, bakın "git with large files"
(hangi bahsedergit-lfsbir çözüm gıt repo dışında büyük dosyaları saklamak için. GitHub, Nisan 2015)

Bir git repo sınırlayan üç konular:

  • büyük dosyaları(büyük dosyalar ile de iyi değil hafıza xdelta for packfile sadece)
  • dosya sayısı çok büyükdemek oluyor ki, blob başına bir dosya, ve yavaş git bir kerede packfile oluşturmak için gc.
  • büyük packfilesbir packfile verimsiz (büyük) packfile gelen verileri almak için dizin.

Daha yeni bir iş parçacığı (Şub. 2015) the limiting factors for a Git repo gösterir:

Merkezi sunucudan birkaç eşzamanlı bir klon da diğer kullanıcılar için diğer eş zamanlı işlemler yavaşlayacak mı?

Klonlama ne zaman server kilitleri var mı? Hayır, teorik olarak klonlama diğer işlemleri etkilemez. Klonlama miktarda bellek kullan (ve cpu çok açmadığınız sürece erişilebilirlik gereken bitmap özelliği).

'git pull' yavaş olacak mı?

Eğer sunucu tarafında etmiyoruzağacın büyüklüğü önemli unsurdurama 25k dosyaları ince (linux 48 k dosyalar vardır) olmalıdır.

'git push'?

Bu bir repo tarihinin nasıl etkilenmez, ya da ağacın nasıl bu kadar hızlı olmalıdır..

Ah hakem sayıları git-push git-pull etkileyebilir.
Stefan benden daha iyi bu alanda bilir bence.

'git commit'? (Yavaş olarak listelenirreference 3.) 'git status'? (Göremedim ama tekrar başvuru 3 yavaş.)
(git-add)

Yine, ağaç büyüklüğünde. Repo büyüklüğü, bu konuda endişelenmenize gerek yok.

Bazı işlemler için günlük olarak görünebilir ama eğer sık sık web ön uç//GitHub vb Saklamak GitLab için denir, o zaman sorunları olabilir. (örneğin 'git branch --contains' çok olumsuz dalları çok sayıda etkilenmiş görünüyor.)

git-blame Bir çok dosya değiştirildiğinde yavaş olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • macpulenta

    macpulenta

    9 EYLÜL 2006