1. 问题描述
AOSP 12的源码两月没有更新了,今日对其做repo sync动作,并切换到新的版本android-12.0.0_r34,结果遇到错误
- fatal: 不能重置索引文件至版本 ‘v2.27^0’
2. 错误日志
2.1 操作过程
szhou@bc04:~/aosp/aosp$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r34
.repo/manifests/: discarding 15 commits
Your identity is: mgr244 <zhoushang@casirisvision.com>
If you want to change this, please re-run 'repo init' with --config-name
repo has been initialized in /home/szhou/aosp/aosp
szhou@bc04:~/aosp/aosp$ repo sync -j4
Fetching: 100% (1040/1040), done in 23m23.215s
Garbage collecting: 100% (1040/1040), done in 3.679s
info: A new version of repo is available
warning: repo is not tracking a remote branch, so it will not receive updates
repo reset: error: Entry 'command.py' not uptodate. Cannot merge.
fatal: 不能重置索引文件至版本 'v2.27^0'。
szhou@bc04:~/aosp/aosp$
2.2 错误分析
- 从如下提示可知,repo已经存在一个新的版本,但因为repo没有" tracking a remote branch" 所以不会被更新
info: A new version of repo is available
warning: repo is not tracking a remote branch, so it will not receive updates
repo reset: error: Entry 'command.py' not uptodate. Cannot merge.
fatal: 不能重置索引文件至版本 'v2.27^0'。
3.解决办法
- 如上,既然repo不能在repo sync时候被更新,那我们就自己git pull一下看看
- 操作过程如下, 进入 .repo/repo/目录后,后执行git pull命令更新repo
szhou@bc04:~/aosp/aosp$ cd .repo/repo/
szhou@bc04:~/aosp/aosp/.repo/repo$ ls -al
总用量 860
drwxr-xr-x 11 szhou szhou 4096 2月 22 17:21 .
drwxr-xr-x 7 szhou szhou 4096 7月 20 19:21 ..
-rw-r--r-- 1 szhou szhou 4438 2月 1 2021 color.py
-rw-r--r-- 1 szhou szhou 6056 3月 1 2020 color.pyc
-rw-r--r-- 1 szhou szhou 12769 2月 22 17:21 command.py
…… 省略 ……
szhou@bc04:~/aosp/aosp/.repo/repo$ git pull
提示:不建议在没有为偏离分支指定合并策略时执行 pull 操作。 您可以在执行下一次
提示:pull 操作之前执行下面一条命令来抑制本消息:
提示:
提示: git config pull.rebase false # 合并(缺省策略)
提示: git config pull.rebase true # 变基
提示: git config pull.ff only # 仅快进
提示:
提示:您可以将 "git config" 替换为 "git config --global" 以便为所有仓库设置
提示:缺省的配置项。您也可以在每次执行 pull 命令时添加 --rebase、--no-rebase,
提示:或者 --ff-only 参数覆盖缺省设置。
来自 https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
68d6963..a8cf575 stable -> origin/stable
更新 8e91248..a8cf575
Fast-forward
command.py | 99 +++++++++++++---
…… 省略 ……
create mode 100644 tests/test_subcmds_sync.py
szhou@bc04:~/aosp/aosp/.repo/repo$
4. 最后
更新完repo之后,继续用repo sync命令,即可继续同步代码
szhou@bc04:~/aosp/aosp$ repo sync