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”按鈕,點擊這個按鈕,我們就可以將這筆提交到代碼庫裏面

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