Git sous-module caisse d'erreur: “fatal: la référence n'est pas un arbre”
Pour référence, voir la question https://github.com/drmeister/clasp/issues/98
À reproduire, procédez de la manière suivante:
git clone git://github.com/drmeister/clasp claspcl
cd claspcl
git checkout tags/0.3-test-3
git submodule update --init
Le résultat est:
git submodule update --init
Submodule 'updatedAsdf' (https://github.com/drmeister/asdf.git) registered for path 'src/lisp/kernel/asdf'
Submodule 'src/lisp/kernel/contrib/sicl' (https://github.com/drmeister/SICL.git) registered for path 'src/lisp/kernel/contrib/sicl'
Submodule 'src/mps' (https://github.com/Ravenbrook/mps-temporary) registered for path 'src/mps'
Cloning into 'src/lisp/kernel/asdf'...
remote: Counting objects: 13416, done.
remote: Total 13416 (delta 0), reused 0 (delta 0), pack-reused 13416
Receiving objects: 100% (13416/13416), 5.34 MiB | 838.00 KiB/s, done.
Resolving deltas: 100% (9935/9935), done.
Checking connectivity... done.
Submodule path 'src/lisp/kernel/asdf': checked out 'dcd692a8f9f6a5cb86133123e1c433a9afb4e7e9'
Cloning into 'src/lisp/kernel/contrib/sicl'...
remote: Counting objects: 49356, done.
remote: Total 49356 (delta 0), reused 0 (delta 0), pack-reused 49356
Receiving objects: 100% (49356/49356), 8.49 MiB | 298.00 KiB/s, done.
Resolving deltas: 100% (37020/37020), done.
Checking connectivity... done.
fatal: reference is not a tree: 280c12ab49223c64c6f914944287a7d049cf4dd0
Cloning into 'src/mps'...
remote: Counting objects: 25250, done.
remote: Total 25250 (delta 0), reused 0 (delta 0), pack-reused 25250
Receiving objects: 100% (25250/25250), 86.87 MiB | 831.00 KiB/s, done.
Resolving deltas: 100% (15851/15851), done.
Checking connectivity... done.
Submodule path 'src/mps': checked out '3e6640e7eeb5d086adec18e6227a84da59898e1c'
Unable to checkout '280c12ab49223c64c6f914944287a7d049cf4dd0' in submodule path 'src/lisp/kernel/contrib/sicl'
Comme vous pouvez le voir, la reproduction recette ne touche pas le sicl
sous-module. Donc, ma meilleure supposition est que l' clasp
dépôt Git a une fausse référence à 280c12ab49223c64c6f914944287a7d049cf4dd0
quelque part à l'intérieur. Les gens de #git aussi semblait penser que c'était plausible. Comme vous pouvez le voir, la reproduction recette ne touche pas le sicl
sous-module. Donc, la meilleure façon de résoudre ce problème? Ce genre de chirurgie est nécessaire pour la clasp
dépôt Git?
REMARQUE: le problème ne se présentent pas sans l' git checkout tags/0.3-test-3
étape. Donc, le problème est probablement dans cette direction, ici fixnum.
OriginalL'auteur Faheem Mitha | 2015-05-20
Vous devez vous connecter pour publier un commentaire.
J'ai suivi vos instructions et a été en mesure de reproduire le problème.
Ses pas quelque chose que vous avez fait, l'objet
280c12ab49223c64c6f914944287a7d049cf4dd0
est endommagé et il n'y a rien que vous pouvez faire pour le réparer.
J'ai réussi à faire une solution de contournement et pour obtenir le contenu de maître:
Après les étapes ci-dessus la
git show 280c12ab49223c64c6f914944287a7d049cf4dd0
encore afficher de mauvais objet (car c'est un problème dans le dépôt original)Mais ce qui est plus étrange, c'est la
git fsck
ne trouve aucune erreur, je vais le regarder plus tard aujourd'hui.Que pour l'instant la solution de contournement, vous permettra de continuer votre travail.
280c12ab49223c64c6f914944287a7d049cf4dd0
correspond? Est-il un objet commit de la SICL? Le problème n'est pas avec Fermoir, mais avec SICL? Et, ce que les commandes que dois-je avant d'exécuter vos instructions? J'aurais sans doute besoin de récupérer la SICL repos, au moins.Vous avez raison, le problème est dans la SICL. il suffit de suivre mes instructions de sorte que vous pouvez continuer votre travail. Pas besoin de faire exécuter quoi que ce soit de spécial. simplement debout sur le Fermoir de la racine du dossier et exécuter les commandes à partir de la deuxième ligne.
Eh bien, je upvoted, de toute façon. Mais je suis toujours pas clair sur le problème. Si j'exécute
git show 280c12ab49223c64c6f914944287a7d049cf4dd0
dans la boucle de la racine, il donne la même erreur que l'intérieur de SICL. Pour être clair, est-ce en se référant à un objet d'une Agrafe ou SICL? Si la dernière question, je ne comprends pas pourquoigit show 280c12ab49223c64c6f914944287a7d049cf4dd0
donnerait un résultat dans la boucle répertoire racine.Le problemtic commettre fait partie de la SICL. quelques minutes pour le trouver pour vous.
Voici alink à la "problématique" commit github.com/drmeister/SICL/commit/..., comme vous pouvez le voir dans son SICL et vous avez été incapable d'obtenir le projet de code, je vous ai donné la solution de contournement de sorte que vous serez en mesure de saisir le code.
OriginalL'auteur CodeWizard