Git clone échoue avec une erreur de mémoire insuffisante - “fatal: de mémoire, malloc a échoué (tried to allocate 905574791 octets) / fatal: index-pack a échoué”

Je suis tente de cloner un grand (1.4 GO) dépôt Git en 32 bits Debian VM avec 384 mo de RAM. J'utilise Git 1.7.2.5, et en utilisant le protocole SSH pour cloner (git clone [email protected]:/my/repo')

Le clone échoue avec ce message:

remote: Counting objects: 18797, done.
remote: warning: subobtimal pack - out of memory
remote: Compressing objects: 100% (10363/10363), done.
fatal: out of memory, malloc failed (tried to allocate 905574791 bytes)
fatal: index-pack failed

J'ai essayé de réduire la quantité de mémoire Git utilise pour remballer sur l'hôte référentiel fin, et le remballage:

git config pack.windowMemory 10m
git config pack.packSizeLimit 20m
git repack -a -d

Mes questions sont les suivantes:

  1. Est-ce un de la taille du client (clone) problème ou faut-il être résolu dans le repo que je suis le clonage?
  2. Dans les deux cas, est-ce que je peux faire pour faire le clone de réussir? Beaucoup de solutions potentielles en ligne impliquer une ou l'autre des choses suivantes, dont aucune n'est acceptable dans ce cas:
    • l'évolution du contenu du référentiel de fond (c'est à dire la suppression de fichiers volumineux)
    • donnant la VM qui est en train de faire le clone de plus de RAM
    • donnant la VM qui est en train de faire le clone 64 bits PROCESSEUR virtuel
    • transfert de la bande (par exemple à l'aide de Rsync ou SFTP pour le transfert de l' .répertoire git)

Merci d'avance.

Hav-vous vérifié que vous avez assez d'espace disque (sur le clonage de la machine) pour que l'ensemble du packfile (900-quelque chose de MO)?
Romain: Oui - j'ai au moins 5,5 GO de disponible sur la machine faire le clonage.
Yup cela m'a mordu une fois, quand j'avais été à l'aide de gros fichiers binaires dans le référentiel. Jetez un oeil à git-bup pour d'autres moyens si c'était la cause

OriginalL'auteur grw | 2011-09-30