SORU
28 Ocak 2011, Cuma


Git deposunu toplayıp başarısız

Git deposu sınırlı bellek ile bir sunucu üzerinde ikamet eden. Sunucu varolan bir depo clone çalıştığımda aşağıdaki hatayı alıyorum

hemi@ubuntu:$ git clone ssh://hemi@servername.dk/home/hemi/repos/articles
Initialized empty Git repository in /home/hemi/Skrivebord/articles/.git/
hemi@servername.dk's password: 
remote: Counting objects: 666, done.
remote: warning: suboptimal pack - out of memory
remote: fatal: Out of memory, malloc failed
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed
hemi@ubuntu:$ 

Özgün havuz (12* *göre) toplayıp denedim bu hatayı işlemek için. Ama depoyu toparlama nasıl kullanılacağını açıklar yerine "gıt pack-nesneler" komutu.

hemi@servername:~/repos/articles$ git repack -a -d --window-memory 10m --max-pack-size 100m
usage: git pack-objects [{ -q | --progress | --all-progress }]
        [--all-progress-implied]
        [--max-pack-size=N] [--local] [--incremental]
        [--window=N] [--window-memory=N] [--depth=N]
        [--no-reuse-delta] [--no-reuse-object] [--delta-base-offset]
        [--threads=N] [--non-empty] [--revs [--unpacked | --all]*]
        [--reflog] [--stdout | base-name] [--include-tag]
        [--keep-unreachable | --unpack-unreachable 
        [<ref-list | <object-list]

Git 1.6.5.7 sunucu üzerinde yüklü.

CEVAP
28 Ocak 2011, Cuma


Çözümünüz çalışan bir kopyasını yerel olarak ve uzaktan, ama uzaktan depoyu kendini tekrar toplayıp karar verdiğinde tekrar sorun neden olur. Neyse ki, config bellek miktarını hem depolarında aslında komut satırı yapmak için varsayılan seçenekleri içine eklediğiniz zaman bu parametreler -- toparlama toparlama ihtiyacı azaltacak seçeneklerini ayarlayabilirsiniz. Yani, uzak oturum, depo haline değiştirmek için yapmanız gereken:

git config pack.windowMemory 10m
git config pack.packSizeLimit 20m

Yerel deponuzu aynı yapmak isteyebilirsiniz. (Bu arada bu da sanırım sizin depo çok büyük ya da bu küçük bellek - bu değerler bana çok düşük gibi makineler için.)

Ne için toparlama konusunda malloc hataları alırken değerçokbüyük depoları geçmişte, ben de değişen değerleri core.packedgitwindowsize, core.packedgitlimit, core.deltacachesize, pack.deltacachesize, pack.window ve pack.threads ama göründüğü gibi ihtiyacın yok başka seçenek :)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ArkticPlanet

    ArkticPlanet

    9 ŞUBAT 2010
  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • george sarintzotis

    george sarin

    2 Aralık 2007