OH代码提交规范
1. 编写背景
在大型项目开发维护中,一般会有多个厂商,相互合作、共同创建。所以每天都会有不同的合作伙伴提交大批量代码上库。
为保证上库代码无异常,不影响项目开发正常运行。各合作伙伴在共建期间,提交代码应遵循统一规范。
当然,非共建的社区伙伴,也可参考。
本文章仅针对近期OH 项目A 介绍代码提交的流程规范。
【注意】在提交代码之前,必须本地 编译-烧录-验证 不影响功能后才能上库。
2. 代码提交方式(git方式)
在OpenHarmony 源码中,有很多不同的仓。
除了verndor仓下面可以修改,其它仓库不允许修改,只能通过打.patch的方式向其它仓合入修改的代码。
在 OH 项目A中,编译命令添加 --patch 参数,即可在编译过程中,将patch文件合入到目标仓的修改中。
3. 代码提交流程
3.1 下载目标仓 ability_ability_runtime
如需要修改./foundation/ability/ability_runtime/services/abilitymgr/include/ability_config.h文件内容:
1. 单独clone下载相关仓
git@gitee.com:xxxxxxxxxxxxxxx/ability_ability_runtime.git
2. 修改 ability_config.h文件后,回到此仓的源码根目录下(一般是有.git或者有.gitee 的目录下),查看此仓修改信息

git status 查看修改状态(红色表示修改的文件,但未添加到本地库)

git diff 查看详细修改点(红色为原数据,绿色为修改后的数据)

上述两步查看修改无异常后,开始制作patch文件。
3.2 制作.patch文件
在此仓的源码根目录下(一般是有.git或者有.gitee 的目录下),执行如下命令:
$ git diff * > 0001_ability_runtime_test.patch
3.3 验证.patch文件
将目标仓ability_ability_runtime所有修改还原,只留下上述制作的.patch文件:
git status 查看本仓有哪些修改(可以看到当前只有一个新增的.patch文件):

手动输入命令打入.patch
patch -p1 < 0001_ability_runtime_test.patch
![]()
再次执行 git status、git diff 查看是否将.patch文件里面的修改点,合入到ability_config.h文件中。
无异常的话,则表示.patch文件制作成功,接下来开始在vendor仓提交代码上库。
3.4 下载vendor仓对应的产品仓
git clone git@gitee.com:xxxxxxxxxxx/vendor_A.git
1. 添加.patch文件
将0001_ability_runtime_test.patch文件放到 vendor_A/xxxx/patch/foundation/ability/ability_runtime/ 目录下
2. 修改.yml文件,将.patch的位置添加进去(编译时,会根据.yml文件的配置找到对应的.patch文件,将修改合入目标仓中)

3. 提交代码
git status 查看仓修改状态;
git diff 查看具体修改点;
git add . 将所有修改添加到本地仓库;
git commit -s 添加描述(必须),格式如下:

git push 将修改推到远程仓库;
之后会显示pr连结,点开链接,在下面添加评论,例如:

最后将 PR链接发给有合入代码权限的人员合入代码。
更多推荐

所有评论(0)