49 votes

git pousser de mémoire, malloc a échoué

Je suis en train d'essayer de pousser mes modifications à distance pour GitHub, chaque tellement souvent git échoue en raison de

C:\dev\projects>git push -v
Pushing to https://user@github.com/mycompany/My-Project.git
Password for 'github.com':
fatal: Out of memory, malloc failed (tried to allocate 524288000 bytes)
fatal: write error: Invalid argument

C'est très, très aggravante. J'ai exécutez les commandes suivantes, mis à jour git (qui a balayé mes paramètres et a causé beaucoup de douleur, mais je m'égare)

git gc --auto --prune=today --aggressive
git repack

J'ai même tombé la valeur de

http.postbuffer

mais il finira par échouer à nouveau.

Il s'agit d'une application Rails 3.1, taille totale du projet sur le disque est de 9.69 MB.

33voto

Diego Pino Points 2849

Mon conseil est d'essayer plusieurs git paramètres liés avec le pack:

[pack]
   threads = 1
   deltaCacheSize = 128m
   windowMemory = 50m

Ce qui il a obtenu de meilleurs résultats pour moi a été mise en git config pack.threads 1 et git config pack.windowMemory 50m (la valeur par défaut est de 10m).

Encore, mon hôte n'avait pas assez de mémoire RAM (2 GO) et gardé l'échec. J'dur copié le repo et déplacé vers un autre ordinateur, avec plus de RAM (8 GO). C'est mieux mais toujours pas.

Enfin, j'ai téléchargé la dernière version de git (https://github.com/git/git), le compiler et l'installer. Qui a résolu le problème simplement en exécutant git repack -adf avec les mêmes paramètres. Après que j'exécute git gc --aggressive --prune=now

Une fois que j'ai eu le repo fixe dans mon local de la machine je l'ai poussé à le maîtriser, de l'écrasement de la télécommande repo, git push -f origin master.

Pour éviter des erreurs similaires à l'avenir essayez de ne pas allonger inutilement les fichiers volumineux sur le repo (dans mon cas, j'ai eu un dump SQL de 3,5 GO :)) et désactiver le delta de la compression pour les fichiers volumineux (tels que des images, des Pdf, des vidéos). Ajoutez les lignes suivantes en .gitattributes:

*.pdf -delta
*.jpg -delta

26voto

ralphtheninja Points 24346

Vous pouvez essayer de changer la configuration pour reconditionner avec

 git config --global pack.windowMemory 256m
 

6voto

Adrian Garcia Points 48

J'ai eu le même problème et après avoir changé certains paramètres en 1024m, le problème a persisté:

 [pack]
     threads = 1
     deltaCacheSize = 1024m
     packSizeLimit = 1024m
     windowMemory = 1024m
[core]
     packedGitLimit = 1024m
     packedGitWindowSize = 1024m
 

Je pense que le problème est lié à la mémoire RAM libre de votre PC.

Le mien était assez occupé, et après le redémarrage, j'ai finalement pu pousser les changements.

Je sais que ma réponse n'est pas très technique, mais j'espère que cela aide.

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