Question

Simple question, je suis en train de courir git gc sur une machine avec un quota. Pré-gc, je suis à environ 18 Go d'utilisation, la quasi-totalité de ce qui est mon dépôt git cloné. Ma limite de disque est 25GB. Au cours de l'opération de git gc, les fichiers temporaires sont assez écrits sur le disque pour frapper ma limite et provoquer ainsi l'opération de git gc échec.

Je peux supprimer le .git/objects/pack/tmp_pack_* après l'opération a échoué et redescendre à 18 Go d'utilisation, mais je voudrais vraiment git gc vraiment complet et récupérer un peu de performance.

Y at-il une option de fantaisie (ou une série d'autres commandes git) que je peux utiliser qui ne nécessite pas d'abord l'écriture> 7GB des fichiers temporaires sur le disque?

Était-ce utile?

La solution

Quelle partie du gc est important pour vous? Vous pouvez essayer d'exécuter les pièces git-prune et git-repack séparément. Avec git-prune, assurez-vous et spécifiez une date limite avec l'option --expire. S'il y a une tonne d'objets en vrac dans votre pension, les faire sortir de la première manière serait utile. *

Avec git-repack, vous pouvez peut-être jouer avec les réglages de profondeur et de fenêtre pour obtenir quelque chose assez petit pour fonctionner dans l'espace que vous avez.

* Je ne prétends pas comprendre toutes les questions en jeu, mais je remarque que le pruneau est après le repliage dans le code git-gc.

Autres conseils

On dirait que la meilleure solution est de le demander un plus grand quota, mais je suis toujours intéressé à entendre des solutions de contournement. Aujourd'hui, ils se sentaient généreux, mais demain ...:)

git prune est une excellente suggestion, bon appel Jefromi.

Une autre chose que vous pouvez faire est de compresser vos fichiers d'autres; git gc; décomprimer.

7z obtient une compression étonnante, mais ne conservera pas et propriétaire de liens durs / groupe Unix, IIRC. Si vous avez un quota, les fichiers sont probablement tous appartenant à votre compte, donc pas de soucis sur le premier score. Mais le plus sûr est tar c --lzma si vous avez, ou tout simplement tar czf ou cjf. Si vous avez beaucoup de petits fichiers, l'umm, la fragmentation externe (?) Pour bloquer la taille pourrait être importante.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top