82 votes

Git sous Windows, "Mémoire insuffisante - échec de malloc"

Avez exécuté sur un problème avec le référentiel et essayé presque tous les possible de config qui se trouve là par exemple. pack.WindowMemory etc etc

Je crois que quelqu'un a vérifié dans un grand fichier de dépôt distant et maintenant à chaque fois que j'essaie de le tirer ou de pousser à elle, GIT essaie d'emballer et de manque de mémoire:

Auto packing the repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 6279, done.
Compressing objects: 100% (6147/6147), done.
fatal: Out of memory, malloc failed (tried to allocate 1549040327 bytes)
error: failed to run repack

Ont essayé git gc & git repack avec diverses options, mais conserve son retour même erreur.

Presque donné et il suffit de créer un nouveau repo, mais pensé que je voudrais vous demandez autour de vous d'abord :)

117voto

git Points 411

J'ai trouvé une solution ici qui a fonctionné pour moi.

Dans le fichier .git / config (client et / ou serveur), j'ai ajouté ceci:

 [core]
  packedGitLimit = 128m
  packedGitWindowSize = 128m

[pack]
  deltaCacheSize = 128m
  packSizeLimit = 128m
  windowMemory = 128m
 

21voto

VonC Points 414372

Pour référence (vous avez peut-être déjà vu), le msysgit cas, le traitement de cette question est le billet 292.

Il suggère plusieurs solutions:

Peut-être plus simple solution de contournement serait de reset d'une certaine façon l'histoire avant que les gros fichier commettre, et de refaire l'autre s'engage à partir de là.

15voto

olibre Points 6069

J'ai eu un similaire Out of memory, malloc failed problème à l'aide de MSysGit lorsque l'on atteint les 4 GO de la barrière:

> git --version
git version 1.8.3.msysgit.0

> file path/Git/cmd/git
path/Git/cmd/git: PE32 executable for MS Windows (console) Intel 80386 32-bit

> time git clone --bare -v ssh://linuxhost/path/repo.git
Cloning into bare repository 'repo.git'...
remote: Counting objects: 1664490, done.
remote: Compressing objects: 100% (384843/384843), done.
remote: Total 1664490 (delta 1029586), reused 1664490 (delta 1029586)
Receiving objects: 100% (1664490/1664490), 550.96 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (1029586/1029586), done.
fatal: Out of memory, malloc failed (tried to allocate 4691583 bytes)
fatal: remote did not send all necessary objects

real    13m8.901s
user    0m0.000s
sys     0m0.015s

MSysGit crashing after reaching 4 GB barrier

Enfin git 64 bits à partir de Cygwin résoudre le problème:

> git --version
git version 1.7.9

> file /usr/bin/git
/usr/bin/git: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows

> time git clone --bare -v ssh://linuxhost/path/repo.git
Cloning into bare repository 'repo.git'...
remote: Counting objects: 1664490, done.
remote: Compressing objects: 100% (384843/384843), done.
remote: Total 1664490 (delta 1029586), reused 1664490 (delta 1029586)
Receiving objects: 100% (1664490/1664490), 550.96 MiB | 9.19 MiB/s, done.
Resolving deltas: 100% (1029586/1029586), done.

real    13m9.451s
user    3m2.488s
sys     3m53.234s

git 64 bits from Cygwin succeeded

Pour info sur linuxhost 64 bits:

repo.git> git config -l
user.email=name@company.com
core.repositoryformatversion=0
core.filemode=true
core.bare=true

repo.git> git --version
git version 1.8.3.4

repo.git> uname -a
Linux linuxhost 2.6.32-279.19.1.el6.x86_64 #1 SMP Sat Nov 24 14:35:28 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

Si ma réponse ne résout pas votre problème, vous pouvez également consulter ces pages:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X