如何移植一个OpenHarmony基线_openharmony 代码 同步到 gitlab
写在前边:分享这篇总结是希望有小伙伴在进行代码移植时,少走一点弯路,有个参考,可以更快的移植代码。
一、创建远程代码仓
此步骤各项目会有专门的人来处理,不做详细介绍
这里我们假设创建的远程仓名为:RK3568_OpenHarmony5.1.0_Backup
二、开源仓代码获取
以5.1.0-Release为例
开源基线:OpenHarmony-v5.1.0-Release:
zh-cn/release-notes/OpenHarmony-v5.1.0-release.md · OpenHarmony/docs - Gitee.com
以我的目录为例,源码下载目录:~/work / Release _5.1.0/code
在此目录下进行以下操作:
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v5.1.0-Release --no-repo-verify //初始化环境并切到对应分支(注意:这里推荐使用https方式的带v版本)
repo sync -c //同步远程仓
repo forall -c \'git lfs pull\' //下载lfs管理的大文件
./build/prebuilts_download.sh --skip-ssl //预编译
三、移植
1.创建一个目录用来下载新基线代码(RK3568_OpenHarmony5.1.0_Backup)
2.以我的目录为例,我的新基线代码存储路径:~work /OpenHarmony/new
3.在此目录clone新基线仓(RK3568_OpenHarmony5.1.0_Backup),这一步操作在我们的4.远程仓下去复制clone指令clone之后进入新代码仓
work /OpenHarmony/new / RK3568_OpenHarmony5.1.0_Backup
5.ls -al查看当前仓根目录下只有一个.git,对.git进行备份或者重命名(重命名时不要以.git开头,因为后续操作会递归查找删除.git开头的文件和目录,这里我们重命名成.agit)
6.拷贝下载的OpenHarmony-v5.1.0-Release代码到新基线仓
cp -ar ~/ work / Release _5.1.0/code /* ~/ work /OpenHarmony/new / RK3568_OpenHarmony5.1.0_Backup/
7.拷贝完成后/ work /OpenHarmony/new /仓下的.gn文件需要手动拷贝到当前新代码仓RK3568_OpenHarmony5.1.0_Backup下,隐藏文件指令拷贝时会漏掉,这里需要我们手动复制粘贴一下
8.修改third_party/typescript/lib/.gitattributes名称(添加前缀,不要以.git开头)
之后
find -name \".gitignore*\" && find -name \".git*\" && find -name \".repo\" && find -name \".gitattributes\" //检查.git
find ./ -name .git* | xargs rm -rf //删除git文件
find ./ -name .repo | xargs rm -rf //删除repo文件
.agit改回原来的名字.git third_party/typescript/lib/.gitattributes已改回原本的名称
到这一步之后,在根目录git status查看变动之后执行git add .
之后再进行编译烧录验证,验证ok之后代码上库
编译指令:./build.sh --product-name rk3568
产物路径:\\out\\rk3568\\packages\\phone\\images\\
四、代码提交
git add .
git commit
commit信息里添加原始基线详细信息
git push origin HEAD:refs/for/master //master是远程仓分支
注:这里对上述删除.git .repo相关操作简单说明下
.git和 .repo中绑定和保留了备份仓库信息,以及一些配置和链接,但是这些在我们提交代码是不需要的,不删除在代码提交和后续下载时会出现问题,比如lfs管理的一些大文件下载失败。而我们当前提交仓根目录下的.git为什么不删除,因为这里包含了远程仓信息,删除后提交代码时会找不到远程仓,这里只做简单说明,详细原因可自己查阅资料
五、精简流程
上述流程相对比较耗时,下面总结一下精简流程
OpenHarmony-v5.1.0-Release开源代码下载在这个目录:~/work / Release _5.1.0/code(repo sync -c 和repo forall -c \'git lfs pull\'都要执行)
clone新基线在这个目录:~work /OpenHarmony/new
在~/work / Release _5.1.0/code目录下进行以下操作:
1.预编译:./build/prebuilts_download.sh --skip-ssl
2. ~/work / Release _5.1.0/code目录下third_party/typescript/lib/.gitattributes修改名称(添加前缀,不要以.git开头)
3. ~/work / Release _5.1.0/code目录下删除.git*和.repo:
find ./ -name .git* | xargs rm -rf //删除git文件
find ./ -name .repo | xargs rm -rf //删除repo文件
4.third_party/typescript/lib/.gitattributes改回原本名称
5.将~work /OpenHarmony/new / RK3568_OpenHarmony5.1.0_Backup目录下的.git拷贝到oh5.1.0/code目录
6.git status查看变动之后执行git add .
7.编译烧录验证ok之后提交
注意:编译前尽量先git add,防止编译后格式属性相关变化
写在最后:以上均为个人理解,如有纰漏,请多多指教。OpenHarmony新人,欢迎各位大佬交流学习