OpenHarmony是基于多仓库的,所有的仓库代码使用repo进行管理组织。看了候老师的直播课,有感。
本文着重讲述两点:
目标:将team-x团队适配的开发板以及开发样例加入到OpenHarmony的仓库一起下载。
一般的做法就是先把版本代码拉下来,然后再拉我们的自己的代码即可:参考文档:基于OpenHarmony3.0 适配stm32f4
本节介绍的是如何使用repo将两者一块拉下来。
创建文件夹:ohos_test,使用repo初始化为OpenHarmony 3.0LTS。
查看本目录,我们发现会多了.repo目录,并且.repo目录下面已经有了default.xml,该文件最终包含的就是.
接下来怎么做呢?就是将管理team_x的xml clone的repo目录,并且必须命名为local_manifests.
然后执行repo sync -c,经过漫长的时间,不出意外的话我们的仓库会一起随着主干代码拉下来。
上面我们介绍了把自己的仓库代码加入到OHOS代码中,这份代码是一个全量代码,所以下载会等待很长很长的时间,也会占用很多很多的空间,那么怎么办呢?修改默认的manifest/default.xml是一个好主意,可以让我们少拉一些代码,但是侵入式的修改非我辈所希望的,因此还是采用local_manifests的方式,既然能加,自然也可以删除:关键字就是remove-project。
类似这样:
<?xml version='1.0' encoding='utf-8'?>
<manifest>
<remove-project name="miscservices_inputmethod" />
<remove-project name="aafwk_aafwk_lite" />
</manifest>
那么删除哪些呢?理论上删除所有我们不需要的。看过候老师直播课的同学都知道manifest下面有个matrix_product.csv,这个就是产品组件矩阵,我们依照这个裁剪即可,将哪些我们say N的全部干掉(这个不是太精准,部分可能遗漏,比方3861的开发板对cmsis说N,不能接受),理论上拿到hpm的表单最靠谱。
csv文件格式如下:
裁剪步骤:
看起来很完美了,不是吗?但是那个CSV看起来都痛,还需要手动去改xml?好吧,直观感觉我们需要一个小工具,详情请继续。
凭我的直觉看,我觉得应该有个小工具来完成这个工作,而不是手动的,否则太残忍了点。试着学习python搞定这个事情,还好找到了python中有两个工具xml/csv,就是专门干这两个事情的。下面介绍如何使用这个python脚本:首先确认你的python环境已经安装了xml/csv(自带的?如果没有请度娘安装。)
首先获取这个repo_cutting.py的脚本, 放到指定目录。
创建目录,并使用repo init进行初始化你要获取的代码版本
将repo_cutting.py放到ohos_test/.repo(目录下)
切换到.repo目录下,执行python repo_cutting.py -l 即可看到当前支持的产品系列,选取一个来执行。默认我们使用润和的hispark_pegasus
然后切回到ohos_test目录使用repo sync -c 同步代码即可。
可以看到剩下的project非常少了,你可以尝试了。
如果你有自己的仓库需要增加,只需要在生成的local_manifests/default.xml增加自己的即可。
最后一个问题:repo_cutting.py一定要放到.repo目录吗?
事实是不必的,不过你需要使用-d 参数指定.repo所在的目录。
写在最后:目前csv文件并不是太精确,有些仓库可能需要手动处理,anyway,毕竟我们已经搞定大部分了。windows? 一样可以用这个脚本!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。