web-dev-qa-db-fra.com

Git pull est très lent .. pourquoi?

Note J'ai étudié la question git-is-very-very-très-slow , mais dans leur cas, la raison en était de gros fichiers binaires - alors que dans mon référentiel, il n'y a que du code PHP/JS/HTML/CSS (pas de binaires) et le fichier le plus volumineux du référentiel est d’environ 800 Ko.

J'ai changé un fichier (quelques lignes), puis git add . et git commit -m "msg", puis git Push Origin master.

Sur une autre machine, lorsque je le code git pull Origin master, il télécharge quelques MiB de données et le calcul du delta et l’application des modifications prennent plus de 2 minutes. Quelque chose ne va pas du tout ici.

Je soupçonne que certaines opérations récentes peuvent causer ceci:

récemment, j'ai accidentellement ajouté de nombreux actifs de fournisseurs (bower_components assets) lorsque je l'ai compris, j'ai utilisé git rm pour les supprimer du référentiel (et bien sûr, git add, git commit et git Push en amont)

C'était il y a quelques jours et les problèmes que j'ai actuellement ont commencé à se poser à peu près à cette époque.

J'ai deux questions:

  • pourquoi ça se passe?
  • comment puis-je réparer mon référentiel?

Note: Je suis le seul à utiliser et pousser à ce repo.

21
ioleo

Le problème était dans le répertoire EmberJS app. Il contenait les répertoires node_modules et bower_components qui gardaient les bibliothèques tierces utilisées par GruntJS pour créer mes actifs JS et CSS.

Chacune de celles-ci contenait de nombreux fichiers et répertoires .. considérant que l’arborescence des dépendances contenait des centaines de bibliothèques dont la taille variait du plus petit (quelques fichiers) au gros (beaucoup de fichiers).

Après avoir supprimé et ignoré ces répertoires, le référentiel git fonctionne à nouveau rapidement.

2
ioleo

J'ai eu une expérience similaire - git pull and Push commence soudainement à fonctionner extrêmement lentement, en prenant dix minutes ou plus, à la fois sur mon Mac OSX local et sur mon serveur Linux/Apache. J'ai supprimé la copie locale du référentiel sur mon Mac, je l'ai reclonée et tout a commencé. A fait la même chose sur le serveur, et tout va bien. Je suppose que c'était en quelque sorte corrompu?

4
NessBird

J'ai eu le même problème quand je traitais avec des milliers de petits fichiers . La chose qui a résolu ce problème pour moi a été de configurer le post-tampon dans la configuration de git repo

git config http.postBuffer 524288000

Au lieu de télécharger avec 18Ko/s, il a soudainement utilisé toute la bande passante

0
Sander Stad