master分支仓库更新方法
背景:
无论是Android还是openharmony的master分支更新都比较频繁,有时我们需要拉取最新的分支代码来验证某些bug是否已经修复,不得不更新master分支的代码,但是可能上次编译都是很久之前的了,这时我们执行repo sync会出现很多的错误。下面我总结一下遇到这类问题的解决方法。
解决方案:
1.首先需要更新一下repo各仓库的信息
在源码根目录下执行如下指令:
cd .repo/manifests
git pull origin master
cd ..
rm -rf projects
2.回到源码根目录
repo sync -c
这时可能会有很多报错
error: The following untracked working tree files would be overwritten by checkout:
最后会有这样的一条报错信息:
Failing repos:
test/xts/tools
Try re-running with “-j1 --fail-fast” to exit at the first error.
接着我们需要删除Failing repos:下面的目录,这些目录由于master分支的更新可能会覆盖这些仓库的内容所以需要删除,而且如果时间比较旧可能比较多
这时我们可以通过一个脚本删除,先将Failing repos:下面的目录都复制到一个文件中比如我这里的failrepos.txt
接着在源码根目录下新建一个脚本remove_failrepos.sh如下:
#!/bin/bash
while read rows
do
echo "rm -rf $rows "
rm -rf $rows
done < failrepos.txt
接着给脚本赋予权限:chmod a+x remove_failrepos.sh
最终执行脚本 ./remove_failrepos.sh
然后回到代码根目录执行 repo sync 同步代码即可