解决在旧版本上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
评论