GNU/Linux >> Tutoriels Linux >  >> Linux

git gc :il ne reste plus d'espace sur l'appareil, même si 3 Go sont disponibles et tmp_pack seulement 16 Mo

Voici donc ce que j'ai découvert jusqu'à présent :je n'ai trouvé aucune documentation sur ces '.tmp-XXXX-pack' cachés dans le .git/objects/pack dossier. Tous les autres sujets que je peux trouver concernent non cachés fichiers avec tmp_ préfixe dans le même dossier. Les cachés sont également clairement créés lors de l'action de remballage et il est possible qu'ils restent également bloqués. Je ne peux pas confirmer si cela est toujours possible dans git 2.3.0 (que j'ai mis à jour depuis), mais au moins l'espace disque requis ne semble pas avoir changé dans cette nouvelle version - il ne peut toujours pas terminer gc /reconditionner. En supprimant ces fichiers .tmp, j'ai pu récupérer mes derniers 4 Go et git semble toujours se comporter correctement par la suite - vos résultats peuvent cependant varier, alors assurez-vous d'avoir une sauvegarde avant de faire cela . Enfin, même 4 Go n'étaient pas suffisants pour remballer avec gc --agressive . Mon .git dossier est de 1,1 Go après le nettoyage, mon référentiel complet est de 1,7 Go. Donc 2x la taille de votre référentiel n'est peut-être pas suffisant pour git gc , même avec l'option agressive (qui devrait économiser de l'espace). J'ai donc dû d'abord récupérer plus d'espace ailleurs.

Enfin, voici ce que j'ai maintenant dans mon script de nettoyage (que je pense être une bonne idée d'appeler à partir d'une tâche cron) :

#!/bin/bash
set -e

#git gc or remove tmp if that fails (because out of disk space)
git gc --aggressive --prune=now || rm -f .git/objects/*/tmp_* && rm -f .git/objects/*/.tmp-*

Scénario similaire (environ 2,3 G disponibles), sauf git gc lui-même échouerait également avec fatal: Unable to create '/home/ubuntu/my-app-here/.git/gc.pid.lock': No space left on device

Ce qui a fonctionné était de git prune d'abord, puis exécutez le gc.


Linux
  1. Git et liens physiques

  2. Pas d'espace disponible sur le périphérique

  3. Impossible de compiler avec make | erreur fatale Pas d'espace disponible sur l'appareil

  4. Répertorier uniquement les noms de périphérique de toutes les interfaces réseau disponibles

  5. Il ne reste plus d'espace sur l'appareil, mais la partition n'est qu'à moitié pleine et les inodes sont disponibles

"Pas d'espace disponible sur l'appareil" - problème de génération de kdump (CentOS/RHEL)

Linux :il ne reste plus d'espace sur l'appareil alors que la commande df affiche beaucoup d'espace libre

Bash :il ne reste plus d'espace sur l'appareil

Désactiver et réactiver la randomisation de la disposition de l'espace d'adressage uniquement pour moi-même

Comment vérifier l'espace libre restant sur un périphérique pour créer une partition

Comment corriger les erreurs intermittentes d'absence d'espace sur l'appareil pendant mv lorsque l'appareil dispose de beaucoup d'espace?