SORU
16 HAZİRAN 2010, ÇARŞAMBA


git büyük ikili dosyaları izlerken çok yavaş çok

Proje, altı aylık ve git çok yavaş çok. Büyüklükte yaklaşık 30 dosyalar 5 MB 50 MB izliyoruz. Bu ikili dosyaları ve git onları tutuyoruz. Bu dosyaları gıt yavaş yapıyoruz inanıyorum.

Bir şekilde boyut ^ tüm dosyalarını öldürmek var . 5 MB deposundan. Tüm bu dosyaları kaybederim biliyorum ve benim için hiç sorun değil.

Liste bir komut istiyorum ideal tüm büyük dosyaları ( >5 MB) . Listede görebiliyorum ve sonra Tamam devam edin ve bu Dosyaları Sil ve git hızlı olun derim.

Git yavaş sadece benim makinede belirtmeliyim ama ortam hazırlama, uygulama dağıtma şimdi 3 saat civarında alarak.

Düzeltme sunucu ve sadece depoyu kullanıcıları etkileyecek bir şey olmalı.

CEVAP
16 HAZİRAN 2010, ÇARŞAMBA


Açıklama

Git onları ve onların değişiklikleri etkin bir şekilde muhafaza edebilir, çünkü küçük metin dosyaları büyük geçmişleri çok iyi. Aynı zamanda, gıt ikili dosyaları çok kötü ve safça dosyası (by default, at least) ayrı kopyalarını muhafaza edecektir. Depo büyük alır ve sonra gördün, ne kadar yavaş olur.

Bu DVCS arasında yaygın bir sorundur, her dosyanın her sürümü indirme gerçeği ile şiddetlenir ("tüm depo") klon her zaman. Kiln çocuklar bu büyük dosyaları sadece talep üzerine tarihsel sürümleri indiren Subversion gibi daha birçok hastalığı tedavi için bir eklenti üzerinde çalışıyor.

Çözüm

Bu komut boyutu ^ geçerli dizin altındaki tüm dosyaları listeler . = 5 MB.

find . -size  5000000c 2>/dev/null -exec ls -l {} \;

Depoyu tüm geçmişi dosyaları kaldırmak istiyorsanız, git filter-branch bu fikir tarihindeki yürüyüş ve büyük dosyaların tüm izlerini kurtulmak için kullanabilirsiniz. Sonra bunu, deponun tüm yeni klonlar küçük olacak. Eğer yalın klonlama olmadan bir depo etmek istiyorsanız, man page yol bulabilirsiniz ("bir Depo Daraltılması için kontrol Listesi").

git filter-branch --index-filter \
    'find . -size  5000000c 2>/dev/null -exec git rm --cached --ignore-unmatch {} \;'

Uyarı bir kelimebu depo olacakuyumsuzağaçlar ve endeksleri farklı dosyalar iade çünkü diğer klonlar ile; itme veya onlardan artık çekmek mümkün olmayacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • habpsu

    habpsu

    25 Temmuz 2007
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • bored before i even began

    bored before

    30 Mart 2009