Android 代码开发工作流

一、概述

要使用Android代码,您需要使用Git和Repo。在大多数情况下,您可以使用Git而不是Repo,或者使用Repo和Git命令来形成复杂的命令。然而,使用Repo进行基本的跨网络操作将使您的工作更简单。

Git是一个开源版本控制系统,旨在处理分布在多个存储库中的大型项目。在Android中,我们使用Git进行本地操作,如本地分支,提交,差异和编辑。

Repo是在Git之上构建的存储库管理工具。 Repo在必要时统一了许多Git存储库,上传到版本控制系统,并自动部署了Android开发工作流程。 Repo并不意味着取代Git,只是为了在Android的中更容易使用Git。 repo命令是可执行的Python脚本,您可以将其放在路径的任何位置。在使用Android源文件时,您将使用
Repo进行跨网络操作。例如,使用单个Repo命令,您可以将文件从多个存储库下载到本地工作目录。

Gerrit是使用git的项目的基于Web的代码审查系统。 Gerrit鼓励更多的集中使用Git,它允许所有授权用户提交更改,如果通过代码审查,这些更改将自动合并。此外,Gerrit通过在浏览器中并排显示更改并启用内联注释来更轻松地进行审阅。

二、基本工作流

在android里,开发与代码库常用的交互模式如下:

  • 下载代码
  • 编辑文件,提交修改
  • 提交修改到gerrit
  • Gerrit触发Jenkins 任务,进行代码检查
  • Reviewer 对代码进行Code review
  • Submit到代码库

Android 代码开发工作流

三、下载代码

要同步所有可用项目的文件:

$ repo sync

要同步所选项目的文件:

$ repo sync PROJECT0 PROJECT1 PROJECT2 . . . 

四、编辑文件,提交修改

按照需求修改好文件之后,使用如下命令可以先暂存你的修改。

git add -A

然后使用git commit 将暂存的文件提交。

五、提交修改到gerrit

在提交到gerrit之前,现将本地代码更新到最新

repo sync

这个时候,可能会出现代码冲突。需要对产生冲突的文件进行修改,然后重新git add .和git commit 最后在执行

git rebase --continue

然后执行

repo upload

这将列出您提交的更改,并提示您选择要上传到gerrit上的分支。如果只有一个分支,您将看到一个简单的y / n提示符。

下图是代码在本地通过git和repo的操作图表。

Android 代码开发工作流

六、Gerrit触发Jenkins 任务,进行代码检查

当修改提交到gerrit上之后,会自动触发jenkins 任务,进行代码检查。这时我们进行代码审查的第一步。
根据我们制定的代码检查规范,检查当前的这笔提交是否满足我们的需要。

如果没有通过代码检查,会对这笔提交进行 vertify -1;通过的话,会进行vertify +1。

代码检查这一步,是后面reviewer进行代码审查的一个重要依据。没有通过的话,开发一定要重新修改代码进行提交。

而且,代码检查的通过率,也是评价这个开发代码质量的一个重要标准。

七、Reviewer 对代码进行Code review

代码在提交到gerrit上之后,除了进行jenkins的代码审核之外,还会给各个负责人(Reviewer)发送审核邀请,由他们进行下一步的代码审核。

Reviewer评审的依据:

  • Jenkins job进行代码检查的结果;
  • 代码设计是否合理;
  • 是否满足需求;
  • 是否可以解决已有的问题;
    ……

Reviewer可以在代码添加comments,发表自己的建议、质疑、修改意见……

开发要回复这些comment,并对代码进行适当的修改,重新提交,直到reviewer认为你的修改满足要求,并给你Code Review +1或+2.

而如果一笔提交长时间没有任何改动,会自动abandon掉,而不需要的修改,也可以手动abandon掉。

八、Submit到代码库

当一笔提交已经被Code Review +2了,说明这笔提交已经满足了需要,这时该笔提交的gerrit界面上会出现“submit”按钮,点击这个按钮,我们就可以将这笔提交到代码库里面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章