文章部分资料参考自老罗的博客:http://blog.youkuaiyun.com/luoshengyang/article/details/18195205,在此感谢老罗无私分享
一 背景
众所周知Android源码是由repo管理的一堆git仓库,我在参与Android Framework开发工作的时候经常sync code遇到如题目所描述的错误。作为repo和git双小白的我看到网上对此问题的答案大概分两种:1,不用理他,继续自己的工作就行;2,通过git命令将当前分支rebase到远端分支,git rebase origin/$branchName。我也不明白这两种解决方法是为啥,一直迷糊。直到看到老罗分享的repo源码解析,终于下决心搞明白这个错误的来龙去脉。
二 问题分析
既然错误日志是由repo打印出来的当然去repo仓库源码中寻找线索(repo的安装方法不在此赘述)。最终搜索到本段log是由.repo/repo/project.py打印出来的
upstream_gain = self._revlist(not_rev(HEAD), revid)
pub = self.WasPublished(branch.name, all_refs)
if pub:
not_merged = self._revlist(not_rev(revid), pub)
if not_merged:
if upstream_gain:
# The user has published this branch and some of those
# commits are not yet merg