android源码sync error

问题描述

第一次执行 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
    _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
    _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

 

你可能感兴趣的:(android源码sync error)