git clone échoue avec “index-pack” a échoué?
J'ai donc créé une distance repo c'est pas nu (parce que j'ai besoin de redmine pour être en mesure de le lire),
et il est mis à être partagé avec le groupe (donc git init --shared=groupe). J'ai été en mesure de pousser à la distance repo et maintenant je suis en train de le cloner.
Si je clone sur le net j'obtiens ceci:
remote: Counting objects: 4648, done.
remote: Compressing objects: 100% (2837/2837), done.
error: git-upload-pack: git-pack-objects died with error.B/s
fatal: git-upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed
Je suis capable de cloner localement sans problème, et j'ai couru "git fsck", qui ne rapporte en balançant les arbres/les gouttes, que je comprends, ne sont pas un problème. Ce pourrait être la cause? Je suis encore capable de tirer à partir d'elle, tout simplement pas de clone. Je note la distance de version git est 1.5.6.5 tout ce qui est local est 1.6.0.4
J'ai essayé de clonage ma copie locale du dépôt, enlevant l' .git dossier et en le poussant vers un nouveau repo, puis cloner le repo et nouvelles que je reçois la même erreur, ce qui m'amène à croire qu'il peut être un fichier dans le repo qui est à l'origine git-upload-pack d'échouer...
Edit:
J'ai un certain nombre de binaires pour windows dans le repo, parce que je viens de construire les modules python et puis collées là tout le monde de ne pas avoir à les construire ainsi. Si je supprime les binaires pour windows et pousser à un nouveau repo, je peux clone de nouveau, peut-être que donne un indice. Cherche à circonscrire exactement ce fichier est à l'origine du problème maintenant.
- il semble être un bug avec cygwin, si vous relancez, il pourrait fonctionner.
- juste pour info, le clonage localement viens de faire des liens physiques, de sorte qu'il ne peut pas faire
index-pack
ou vérifier les erreurs. - yep, réessayer et ça pourrait fonctionner... il semble échouer moins sur https pour quelque raison dans mon cas
- J'ai exactement le même messages d'erreur. Sauf qu'il apporte aussi des dizaines de la suivante, tout répété,
error: packfile .git/objects/pack/pack-5f2b4b46e2dba195a0fa5d29dfd3cef88067f8ed.pack does not match index
etwarning:
+ même 'pack' msg +cannot be accessed
. Il ne se produit lors de la tentative de cloner à partir de cette machine. Ou, après son échec, lorsque vous essayez de tirer ça se passe ainsi. Plus tard, il semble que nous pouvons continuer à essayer jusqu'à ce que finalement il se termine. Toute autre machine de clonage à partir de ce repo n'avons pas de problèmes à tous. Le win server est nue et toutes les machines sont sous windows avec cygwin. - Si vous avez plus d'un lecteur sur votre ordinateur, essayez de le cloner sur un autre disque.
- Sur Windows 10, si vous utilisez AVG anti virus, essayez de désactiver AVG. (testé avec avg Fév/2019 et git pour windows 2.20.0)
Vous devez vous connecter pour publier un commentaire.
La façon dont j'ai résolu ce problème est: est-ce Mon git daemon est en cours d'exécution sur windows, et les clients sont sur d'autres ordinateurs.
J'ai trouvé une solution de contournement (mais il ne fonctionne que sur windows).
Commencer git daemon avec des informations détaillées à partir de cmd.exe:
Pas testé, si ça fonctionne directement dans git bash. Peut-être il sera.
Ensuite (avant de commencer n'importe quel clone, tirer, extraire,...) sélectionner le texte dans la fenêtre (note: le "Mode d'Édition Rapide" doit être activé (peut être trouvée dans: cmd.exe --> Propriétés (cliquez sur le coin supérieur gauche de votre fenêtre cmd) --> Modifier les Options)) dans lequel git daemon fonctionne. Qui va l'empêcher de l'impression de tout les autres messages dans cette fenêtre.
Lors de la sortie du fil de git daemon est bloqué de cette façon, l'erreur ne se produit pas
edit
menu @codeSF dit. Et en laissant les options de la fenêtre ouverte comme @goofballLogic dit ne fonctionne pas non plus (windows 10)J'ai le même problème que vous; le message d'erreur quand je clone i:
Dans mon cas, la raison en est que mon référentiel taille (200M) est plus grande que mon
git
mémoire du serveur (128M). Quand je clone de lagit
serveur, j'ai utiliser la commandetop
sur mon serveur, ce qui montre que l'utilisation de la mémoire est bientôt plus de 128M.Lorsque j'utilise un autre serveur qui a de la mémoire 4G, la
git clone
est tous d'accord. Vous pourriez également essayer d'ajouter de l'espace de swap à votre serveur..gitconfig
correctifs:[core] packedGitLimit = 512m packedGitWindowSize = 512m [pack] deltaCacheSize = 2047m packSizeLimit = 2047m windowMemory = 2047m
- de toute évidence, les sauts de ligne.Ne "git gc" se plaindre?
git gc
avantgit pull
résolu le problèmeJ'ai eu le même problème.
Je pense aussi a été que cela a à voir avec le fait que j'utilise de texte/CRLF mode pour les fichiers créés.
Et en effet, après le passage de CygWin pour UNIX/binary mode de saut de ligne, tout fonctionne bien.
Voir:
BTW, le moyen le plus facile pour moi pour changer le mode de fichier a éditer /etc/fstab
pour passer de
à
Utilisation
GIT_TRACE
variable d'environnement pour obtenir la sortie de débogage. Mis à "1" à l'état de trace à stderr ou un chemin d'accès absolu à la trace dans un fichier.J'ai aussi eu des problèmes avec cygwin git, le message d'erreur:
fatal: index-pack failed
,J'ai été en mesure de le résoudre par la création d'un support pour mes projets et de réglage pour le mode binaire. depuis mon
/c
est réglé en mode texte.Ajouter cygwin pour
/etc/fstab
:exécuter
mount -a
de monter tous les disques.Vous avez besoin pour être en
/projects
de travailler avec cygwingit
,/c/work/Projects
échouera.Ne sais pas si cela fonctionnera pour vous.
J'ai mis à jour mon ordinateur client est source de git à la même version que le serveur est en cours d'exécution et qui fixe cela pour moi.
J'ai le même problème et je voudrais changer mon git configs et qui a bien fonctionné:
Git-daemon problème semble avoir été résolu dans v2.17.0 (vérifié avec un non travail v2.16.2.1).
I. e. solution de contournement de la sélection de texte dans la console pour "verrouiller la mémoire tampon de sortie" ne devrait plus être nécessaire.
De https://github.com/git/git/blob/v2.17.0/Documentation/RelNotes/2.17.0.txt:
J'ai eu ce problème, ou à peu près, mais ne voit pas la solution à mon cas dans un de ces threads.
Dans mon cas, le problème était le pare-feu. Le clonage de petits dépôts travaillé de toute façon, mais en plus grand d'entre eux a échoué. Donc, si rien ne vient en aide, paramètres de pare-feu est la peine de vérifier.
Je suis tombé sur cette question, le clonage d'un dépôt github de github.com, l'exécution de la commande git 2.13 sur SLES 12 SP3. Essayé la mise à niveau de git pour la dernière version (v2.21 à l'époque), mais cela ne résout pas le problème. Essayé de réglage git config options proposées, et de nombreuses autres options, avec pas de chance.
En fin de compte, je l'ai fait à la main.
mkdir somedir
git init
pour configurer le répertoire GIT.git remote add origin http://github.com/git/git
git fetch
pour saisir le pack. Cette tâche a échoué avec une erreur, mais a laissé derrière extraites-mais-bad pack dans.git/objects/pack/tmp_pack_XXXXXX
cat .git/objects/pack/tmp_pack_XXXXXX | git unpack-objects -r
pour extraire tous les objets valides.git fetch
de nouveau pour obtenir quoi que ce soit (comme les branches et les tags) a manqué de l'état de la tente. Pas de pack/objets nécessaires parce qu'ils ont tous été déballés.git checkout master
, pour obtenirHEAD
pointant à quelque chose de réel.Je ne suis pas sûr que c'était nécessaire pour moi, mais je recommande de
git fsck
etgit gc
après, qui sera également déclencher git pour recréer les packs/index.- Je résoudre ce problème en fixant l'autorisation de dossier: