Git submodule checkout error: "fatal: reference is not a tree"
I followed your instructions and was able to reproduce the problem.
Its not something you did, the object 280c12ab49223c64c6f914944287a7d049cf4dd0
is corrupted and there is nothing you can do in order to fix it.
I manged to do a workaround and to get the content of master:
git show 280c12ab49223c64c6f914944287a7d049cf4dd0
(will display bad object)
cd sicl
git checkout clos
git branch -d master
git fetch --all --prune
git checkout master
git fsck
After the above steps the git show 280c12ab49223c64c6f914944287a7d049cf4dd0
still display bad-object (since its a problem in the original repository)
But what that is more strange is the git fsck
does not find any errors, i will look into it later on today.
As for now the workaround will allow you to continue your work.
Related videos on Youtube
Faheem Mitha
Updated on August 04, 2022Comments
-
Faheem Mitha over 1 year
For reference, see the issue https://github.com/drmeister/clasp/issues/98
To reproduce, do the following:
git clone git://github.com/drmeister/clasp claspcl cd claspcl git checkout tags/0.3-test-3 git submodule update --init
The result is:
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'
As you can see, the reproduction recipe does not touch the
sicl
submodule. So, my best guess is that theclasp
Git repository has a spurious reference to280c12ab49223c64c6f914944287a7d049cf4dd0
somewhere inside it. The folks on #git also seemed to think this was plausible. As you can see, the reproduction recipe does not touch thesicl
submodule. So, how best to resolve this problem? What kind of surgery is required for theclasp
Git repository?NOTE: the problem does not show up without the
git checkout tags/0.3-test-3
step. So the problem is presumably in that particular branch, herefixnum.