AOSP repo sync错误,坏对象HEAD

时间:2015-01-22 03:27:06

标签: android git sync android-source repo

我已经和大约一年或两年前合作并成功编译和安装了AOSP。我试图重新启动并运行它来进行一些开发。但是,我一直收到这个错误:

    Fetching projects: 100% (486/486), done.  
Traceback (most recent call last):
  File "/home/hoshi/WORKING_DIRECTORY/.repo/repo/main.py", line 500, in <module>
    _Main(sys.argv[1:])
  File "/home/hoshi/WORKING_DIRECTORY/.repo/repo/main.py", line 476, in _Main
    result = repo._Run(argv) or 0
  File "/home/hoshi/WORKING_DIRECTORY/.repo/repo/main.py", line 155, in _Run
    result = cmd.Execute(copts, cargs)
  File "/home/hoshi/WORKING_DIRECTORY/.repo/repo/subcmds/sync.py", line 675, in Execute
    project.Sync_LocalHalf(syncbuf)
  File "/home/hoshi/WORKING_DIRECTORY/.repo/repo/project.py", line 1204, in Sync_LocalHalf
    lost = self._revlist(not_rev(revid), HEAD)
  File "/home/hoshi/WORKING_DIRECTORY/.repo/repo/project.py", line 2241, in _revlist
    return self.work_git.rev_list(*a, **kw)
  File "/home/hoshi/WORKING_DIRECTORY/.repo/repo/project.py", line 2435, in rev_list
    p.stderr))
error.GitError: device/lge/mako-kernel rev-list ('^7bf237bdf8a8c6d516219dc09b3bc114aa0e863d', 'HEAD', '--'): fatal: bad object HEAD

这在成功&#34;获取所有包之后发生&#34; (上面的终端输出的第一行)。我尝试删除WORKING_DIRECTORY中的.repo文件夹并在那里重新初始化repo。我认为它解决了这个问题,但是在可能需要几个小时的同步后再次出现错误!我已经尝试过各种讨论/论坛的几个解决方案,但似乎无法弄明白。

非常感谢任何寻求解决方案的帮助!

1 个答案:

答案 0 :(得分:1)

我知道这个问题是在一年前发布的,但这个答案有望帮助其他人。此外,当发生这种情况时,令人沮丧的是,在您知道错误仍然存​​在或最终解决之前,提取可能需要几分钟。

解决方案是清除错误消息中指定的关联项目的.git文件夹(在本例中为lge / mako-kernel)

$ rm -rf .repo/project-objects/device/lge/mako-kernel.git
$ rm -rf .repo/projects/device/lge/mako-kernel.git
$ rm -rf device/lge/mako-kernel/.git

请注意,如果不删除所有三个文件夹,树状态将不一致,并且会出现相同的错误。

这也在多个项目中报告,所以我迭代地应用了这个,直到整个同步成功。