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链接发给有合入代码权限的人员合入代码。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐