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 :)
3 réponses
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:
- Désactiver la compression delta à l'échelle mondiale. Pour cela vous devez mettre
pack.window
à 0 . Bien sûr, cela rendra le dépôt beaucoup plus grand sur disque. - désactiver la compression delta pour certains fichiers. De vérifier la
delta
drapeau sur la page de manuel àgitattributes
. -
git config --global pack.threads 1
-
git config --global pack.windowMemory 256m
(vous avez déjà essayé celui-ci, mais aussi illustré dans " erreur en tirant avertissement: suboptimal pack-out of memory ") - autres paramètres sont mentionnés dans le " git push fatale: impossible de créer le thread: Ressource temporairement non disponible " et " Git pull échoue avec une erreur d'en-tête de paquet " dans le cas où il s'agit de
pack
. - sm4 ajoute dans les commentaires :
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à.
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
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
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: