Git sur Windows, "mémoire malloc a échoué"

ont rencontré un problème avec le dépôt et ont essayé presque toutes les configurations possibles trouvé là par exemple. pack.WindowMemory etc etc

je crois que quelqu'un a vérifié dans un grand fichier vers le dépôt distant et maintenant chaque fois que j'essaie de tirer ou de pousser vers lui, git essaie de l'empaqueter et court de la 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é de git gc & git repack avec diverses options, mais conserve retour d'erreur.

presque abandonné et sur le point de créer un nouveau repo, mais j'ai pensé que je demanderais autour d'abord :)

60
demandé sur timothyclifford 0000-00-00 00:00:00

3 réponses

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

In .fichier git / config (client et / ou serveur) j'ai ajouté ce qui suit:

[core]
  packedGitLimit = 128m
  packedGitWindowSize = 128m

[pack]
  deltaCacheSize = 128m
  packSizeLimit = 128m
  windowMemory = 128m
92
répondu git 2012-10-09 21:01:33

pour référence (vous l'avez peut-être déjà vu), l'affaire msysgit traitant de cette question Est le ticket 292 .

il suggère plusieurs solutions de rechange:

Pour désactiver la compression delta pour certains fichiers, dans .git/info/attributes , ajouter:

*.zip binary -delta

à Partir de Gitattributes page de manuel de :

La compression Delta ne sera pas tentée pour les blobs pour les chemins avec l'attribut delta mis à false.


peut-être qu'une solution plus simple serait de réinitialiser l'historique avant que ce grand fichier commit, et de refaire l'autre commits à partir de là.

18
répondu VonC 2017-05-23 12:18:11

EDIT : depuis git-v2.5.0 (août/2015) , git-for-windows (anciennement MSysGit)

      fournit 64-bits versions comme noté par Pan.élève .

      Dans cette réponse, je conseillais à installer Cygwin 64 bits (fournissant 64 bits Git version).


j'ai eu une semblable 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

Finally git 64 bits from Cygwin fix it:

> 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

FYI on 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ègle pas votre problème, vous pouvez aussi consulter ces pages:

13
répondu 2017-05-23 12:18:11