Use Your Illusion

解决在旧版本上repo init时候fatal: bad object XXX的错误

  • 环境:Mac OS X 10.8

  • 问题:在ics版本的Android源码库上运行repo init来升级到jb,出现下列错误


repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-jb-am37x.xml

remote: Counting objects: 32, done.

remote: Compressing objects: 100% (23/23), done.

remote: Total 24 (delta 13), reused 0 (delta 0)

Unpacking objects: 100% (24/24), done.

From git://gitorious.org/rowboat/manifest

   f91c182..a1ef696  master     -> origin/master

 * [new branch]      rowboat-jb-am335x-4.1.2 -> origin/rowboat-jb-am335x-4.1.2

 * [new tag]         rowboat-jb-am335x-4.1.2 -> rowboat-jb-am335x-4.1.2

Traceback (most recent call last):

  File "/Volumes/Project/rowboat-jb/.repo/repo/main.py", line 385, in <module>

    _Main(sys.argv[1:])

  File "/Volumes/Project/rowboat-jb/.repo/repo/main.py", line 365, in _Main

    result = repo._Run(argv) or 0

  File "/Volumes/Project/rowboat-jb/.repo/repo/main.py", line 137, in _Run

    result = cmd.Execute(copts, cargs)

  File "/Volumes/Project/rowboat-jb/.repo/repo/subcmds/init.py", line 284, in Execute

    self._SyncManifest(opt)

  File "/Volumes/Project/rowboat-jb/.repo/repo/subcmds/init.py", line 159, in _SyncManifest

    m.Sync_LocalHalf(syncbuf)

  File "/Volumes/Project/rowboat-jb/.repo/repo/project.py", line 1040, in Sync_LocalHalf

    upstream_gain = self._revlist(not_rev(HEAD), revid)

  File "/Volumes/Project/rowboat-jb/.repo/repo/project.py", line 1785, in _revlist

    return self.work_git.rev_list(*a, **kw)

  File "/Volumes/Project/rowboat-jb/.repo/repo/project.py", line 1930, in rev_list

    p.stderr))

error.GitError: manifests rev-list ('^HEAD', 'a1ef696a741ff05ec730d333c1109601134b66a7', '--'): fatal: bad object a1ef696a741ff05ec730d333c1109601134b66a7



  • 解决方案:

cd /Volumes/Project/rowboat-jb/.repo/manifests

git fetch 同步下manifests

git diff 查看未提交的修改

git stash 保存修改

cd ../..

repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-jb-am37x.xml

repo sync


评论