提交程式碼變更

本頁說明向 Android 提交程式碼變更的完整程序 開放原始碼計畫 (AOSP),包括如何提出審查及追蹤要求 變更即可。

Android 開放原始碼計畫仰賴 Gerrit,網頁式程式碼審查系統適用於使用 Git。

簽署協作者授權協議

發布任何 Android 開放原始碼計畫程式碼變更前,請務必閱讀 貢獻者授權協議和標頭 並簽署下列其中一項協議:

,瞭解如何調查及移除這項存取權。

建立分支版本

針對每個您要變更的程式碼,執行下列步驟:

  1. 在相關的 Git 存放區中啟動新的分支版本。分支版本並非副本 原始檔案;指向特定修訂版本 建立本機分支版本並在這些分支版本間切換是一項輕量作業變更者: 只要使用分支版本,就能識別彼此的變更。執行下列指令, 啟動分支版本:

    repo start BRANCH_NAME
    

    您可以同時啟動多個獨立的分支版本 Cloud Storage 也提供目錄同步處理功能分支版本 BRANCH_NAME 是您本機上的 且不會包含在 Gerrit 或最終來源樹狀結構中。 分支版本也專屬於所在的專案,因此如果需要變更 以便套用相同的變更 。

  2. (選用) 確認分支版本已建立:

    repo status .
    

    您應該會看見新建立的分支版本。例如:

    project frameworks/native/                      branch mynewbranch
    

進行變更並測試變更

請按照下列步驟進行變更並測試變更:

  1. 為確保您使用的是最新的程式碼集,請將 整個程式碼集:

    repo sync
    

    如果同步處理過程中發生任何衝突,請參閱步驟 2 至 4 解決同步處理衝突

  2. 找到要變更的代碼。如要尋找程式碼,建議使用 Android 程式碼搜尋工具。你可以使用 Android 裝置 Google Code Search 會在實際使用時列出 Android 開放原始碼計畫原始碼 基礎架構若需更多資訊,請參閲 開始使用程式碼搜尋。 如要查看 Android 程式碼搜尋中 main 分支的所有程式碼, 導航到 https://cs.android.com/android/platform/superproject/main

  3. 修改或新增來源檔案。進行的任何變更:

  4. 建構 Android

  5. 測試版本

暫存及提交變更

修訂是 Git 中修訂版本控制的基本單位,由 整個專案目錄結構和檔案內容的快照。 請按照下列步驟提交變更:

  1. 根據預設,Git 會註冊但不會追蹤您所做的變更。目的地: 指示 Git 追蹤變更,因此,您必須標示或暫存變更 也會包含在修訂版本中執行下列指令來暫存變更:

    git add -A
    

    這個指令會追蹤您對任何檔案所做的變更。

  2. 接著,前往暫存區的檔案修訂版本或將檔案儲存到本機位置 資料庫:

    git commit -s
    

    根據預設,系統會開啟文字編輯器並提示您提供 。

  3. 請使用下列格式的修訂訊息:

    • 第 1 行:廣告標題。提供一行變更的摘要 (50 個字元) 上限)。建議使用前置字串描述變更的區域,後面加上 。 包含使用者介面變更的範例:

      ui: Removes deprecated widget
      
    • 第 2 行:空白行。然後接續使用空白行。

    • 第 3 行:內文。提供長度為 72 個字元的詳細說明 。說明改變可以解決的問題以及解決方法。雖然人體 有些人需要參考這項變更,因此對他們有幫助 請務必附上簡短的附註,說明任何假設或背景資訊 可以瞭解是否有其他貢獻者使用這項功能時

    如要閱讀網誌,瞭解何謂良好的修訂版本說明 (含範例),請參閱 如何編寫 Git 修訂版本訊息

  4. 儲存修訂版本。

專屬變更 ID、您的姓名和電子郵件地址 ( 提供的 repo init 期間所提供的資訊,會自動新增到您的修訂訊息中。

上傳變更以供審查

將變更提交至個人 Git 記錄後,請將變更上傳至 Gerrit:

  1. 執行下列指令,將您所有的修訂版本 專案:

    repo upload
    

    所有專案中的所有變更都會納入上傳作業。

    系統會提示您執行掛鉤指令碼。

  2. 按下 A 鍵,然後按下 Enter 鍵。

    系統會提示您核准上傳:

    Upload project frameworks/native/ to remote branch main:
    branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
           ff46b36d android codelab change
    to https://android-review.googlesource.com/ (y/N)?
    
  3. 依序按下 Y 鍵和 Enter 鍵,即可核准上傳作業。

您應該會收到類似 remote: SUCCESS 的訊息。

申請審查

上傳成功後,Repo 會提供您變更內容的連結: Gerrit。按一下連結即可在審查伺服器上查看變更、新增意見、 或要求特定審查人員進行變更對程式碼所做的變更,都必須 相關的程式碼擁有者申請審查的步驟如下:

  1. 在 Gerrit 中,按一下「SUGGEST OWNERS」(建議擁有者)

    在 Gerrit 中推薦擁有者連結

    圖 1. 在 Gerrit 中推薦擁有者連結。

    畫面上隨即會顯示審查者對話方塊。這個對話方塊列出的程式碼擁有者清單 可查看您的變更

  2. 按一下程式碼擁有者,將對方加進評論。

    「傳送」按鈕已啟用。

  3. (選填) 輸入您想審查的其他使用者電子郵件地址 變更。

  4. (選用) 按一下「自動提交」旁的「+1」,即可自動提交變更 在應用程式通過核准後如果未點選這個按鈕,表示 Google 員工 不需提交變更

  5. 按一下「傳送」即可將變更送審。

程式碼擁有者查看程式碼變更,並提供意見回饋 解決或核准變更

判斷變更狀態

如要判斷變更內容檔案的狀態,請檢查 所變更檔案旁的圖示:

  • (勾號) 圖示):由程式碼擁有者核准
  • (交叉圖示): 未經程式碼擁有者核准
  • (時鐘) 圖示):正在等待程式碼擁有者核准

下圖顯示了變更中檔案所套用的狀態圖示:

顯示程式碼擁有者核准狀態的檔案範例

圖 2. 顯示程式碼擁有者核准狀態的檔案範例。

解決意見回饋並上傳替換品

如果審查人員要求修改你的更新內容, 修改 Git 中的修訂版本,讓系統在相同的 變更。

如何解決意見回饋並修改變更內容:

  1. 按照執行及測試變更中的步驟 2 到 4 操作。

  2. 執行下列指令來修改變更:

    git add -A
    git commit --amend
    
  3. 上傳變更

上傳修改過的變更內容時,系統會將 Gerrit 上的原始檔案完全取代 以及本機 Git 歷史記錄

解決同步處理衝突

如果其他變更已提交至與 您會收到衝突訊息。如何解決衝突:

  1. 請確認您使用最新的程式碼:

    repo sync .
    

    repo sync 指令會從來源伺服器擷取更新,然後 會嘗試將 HEAD 自動重新加回新的遙控器 HEAD

  2. 如果自動重新計算失敗,請執行手動重新集:

    repo rebase .
    
  3. 解決合併衝突。如果沒有偏好的解決方法 合併衝突,您可以 使用git mergetool ,手動修正檔案之間的衝突。

  4. 成功修正衝突的檔案後,執行下列指令, 並套用新的修訂版本:

    git rebase --continue
    

提交變更

提交內容之後,會經過審核和驗證程序 Google 審查人員必須為您提交該代碼。其他 使用者可以執行 repo sync,將更新提取至各自的本機 用戶端。

合併提交內容後,你可以前往 Android 持續整合 儀表板中監控提交內容何時整合到樹狀結構中。