GNU/Linux >> Linux Esercitazione >  >> Linux

git gc:nessuno spazio rimasto sul dispositivo, anche se 3 GB disponibili e tmp_pack solo 16 MB

Quindi ecco cosa ho scoperto finora:non sono riuscito a trovare alcuna documentazione su questi '.tmp-XXXX-pack' nascosti nel .git/objects/pack cartella. Tutti gli altri thread che riesco a trovare riguardano non nascosti file con tmp_ prefisso nella stessa cartella. Anche quelli nascosti vengono chiaramente creati durante l'azione di repack ed è possibile che anche questi si blocchino. Non posso confermare se sia ancora possibile in git 2.3.0 (che ho aggiornato da allora), ma almeno il requisito di spazio su disco non sembra essere cambiato in questa versione più recente - non può ancora completare gc / reimballare. Eliminando questi file .tmp sono stato in grado di recuperare i miei ultimi 4 GB e git sembra ancora comportarsi bene in seguito - i tuoi risultati potrebbero variare, quindi assicurati di avere un backup prima di farlo . Infine, anche 4 GB non erano sufficienti per reimballare con gc --agressive . Il mio .git folder è di 1,1 GB dopo la pulizia, il mio intero repository è di 1,7 GB. Quindi 2 volte la dimensione del tuo repository potrebbe non essere sufficiente per git gc , anche con l'opzione aggressiva (che dovrebbe risparmiare spazio). Quindi ho dovuto prima recuperare più spazio altrove.

Infine, ecco cosa ho ora nel mio script di pulizia (che penso potrebbe essere una buona idea chiamare da un cron job):

#!/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-*

Scenario simile (circa 2.3G disponibili), eccetto git gc stesso fallirebbe anche con fatal: Unable to create '/home/ubuntu/my-app-here/.git/gc.pid.lock': No space left on device

Ciò che ha funzionato è stato git prune prima, quindi esegui il comando gc.


Linux
  1. Disattiva e riattiva la randomizzazione del layout dello spazio degli indirizzi solo per me stesso

  2. Spazio esaurito sul dispositivo

  3. Nessuno spazio rimasto sul dispositivo, ma la partizione è piena solo per metà e gli inode sono disponibili

  4. Crittografa la cartella su Linux che può essere decrittografata solo su quel sistema operativo e dispositivo specifici

  5. AWS EC2 - Spazio esaurito sul dispositivo

"Nessuno spazio rimasto sul dispositivo" – problema di generazione di kdump (CentOS/RHEL)

Linux:nessuno spazio rimasto sul dispositivo mentre il comando df mostra molto spazio libero

Impossibile compilare con make | errore irreversibile Spazio esaurito sul dispositivo

Elenca solo i nomi dei dispositivi di tutte le interfacce di rete disponibili

Nessuno spazio rimanente sul dispositivo anche dopo aver aggiunto un Persistence Storage su gcloud

C'è qualche altro motivo per cui non c'è più spazio sul dispositivo?