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