repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。

Posted 阿迷创客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。相关的知识,希望对你有一定的参考价值。

文章目录

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  222 17:21 .
drwxr-xr-x  7 szhou szhou   4096  720 19:21 ..
-rw-r--r--  1 szhou szhou   4438  21  2021 color.py
-rw-r--r--  1 szhou szhou   6056  31  2020 color.pyc
-rw-r--r--  1 szhou szhou  12769  222 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 

以上是关于repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。的主要内容,如果未能解决你的问题,请参考以下文章

Repo下载编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27

Repo下载编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27

python reposado更新通知:报告在repo_sync运行之间更改了Apple产品

repo sync更新git仓库报错:已拒绝,会破坏现有的标签

为什么“repo sync”会覆盖我的本地更改?

repo sync 出现git@172.26.65.7's password: Permission denied (publickey,password).