问题描述
第一次执行 repo sync 同步android源码(JZO54L)时,出现:
Syncing work tree: 51% (150/293) error: unknown object type 0 at offset 1112285 in .git/objects/pack/pack-3dccdbf2aeeb0df599ca5b3fee5350792195400a.pack
fatal: packed object 881c2ee8b85886db32ad1276c20e7ac7d72b98ef (stored in .git/objects/pack/pack-3dccdbf2aeeb0df599ca5b3fee5350792195400a.pack) is corrupt
Traceback (most recent call last):
File "/media/zhou/LI/Android/JZO54L/.repo/repo/main.py", line 531, in <module>
_Main(sys.argv[1:])
File "/media/zhou/LI/Android/JZO54L/.repo/repo/main.py", line 507, in _Main
result = repo._Run(argv) or 0
File "/media/zhou/LI/Android/JZO54L/.repo/repo/main.py", line 180, in _Run
result = cmd.Execute(copts, cargs)
File "/media/zhou/LI/Android/JZO54L/.repo/repo/subcmds/sync.py", line 821, in Execute
project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)
File "/media/zhou/LI/Android/JZO54L/.repo/repo/project.py", line 1327, in Sync_LocalHalf
self._InitWorkTree(force_sync=force_sync)
File "/media/zhou/LI/Android/JZO54L/.repo/repo/project.py", line 2486, in _InitWorkTree
raise GitError("cannot initialize work tree")
error.GitError: cannot initialize work tree
解决方案
执行
$ repo --trace sync -cdf
命令行持续打印,直到出现下面这段后停止。
: cd /media/zhou/LI/Android/JZO54L/external/srec
: git read-tree --reset -u -v HEAD 1>| 2>|
error: unknown object type 0 at offset 1112285 in .git/objects/pack/pack-3dccdbf2aeeb0df599ca5b3fee5350792195400a.pack
fatal: packed object 881c2ee8b85886db32ad1276c20e7ac7d72b98ef (stored in .git/objects/pack/pack-3dccdbf2aeeb0df599ca5b3fee5350792195400a.pack) is corrupt
Traceback (most recent call last):
File "/media/zhou/LI/Android/JZO54L/.repo/repo/main.py", line 531, in <module>
_Main(sys.argv[1:])
File "/media/zhou/LI/Android/JZO54L/.repo/repo/main.py", line 507, in _Main
result = repo._Run(argv) or 0
File "/media/zhou/LI/Android/JZO54L/.repo/repo/main.py", line 180, in _Run
result = cmd.Execute(copts, cargs)
File "/media/zhou/LI/Android/JZO54L/.repo/repo/subcmds/sync.py", line 821, in Execute
project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)
File "/media/zhou/LI/Android/JZO54L/.repo/repo/project.py", line 1327, in Sync_LocalHalf
self._InitWorkTree(force_sync=force_sync)
File "/media/zhou/LI/Android/JZO54L/.repo/repo/project.py", line 2486, in _InitWorkTree
raise GitError("cannot initialize work tree")
error.GitError: cannot initialize work tree
所以/external/srec出现问题。
解决:
在可见文件下,将这个目录“/external/srec”删除。
然后在命令行下,将下面两个目录删除。
.repo/projects/external/srec.git
.repo/project-objects/platform/external/srec.git
$ cd .repo
$ cd projects
$ rm -rf external/srec.git
$ cd ..
$ cd project-objects
$ cd platform
$ rm -rf external/srec.git
最后再 repo sync完成同步。
参考
https://blog.csdn.net/ly890700/article/details/54848373