本頁說明向 Android 提交程式碼變更的完整程序 開放原始碼計畫 (AOSP),包括如何提出審查及追蹤要求 變更即可。
Android 開放原始碼計畫仰賴 Gerrit,網頁式程式碼審查系統適用於使用 Git。
簽署協作者授權協議
發布任何 Android 開放原始碼計畫程式碼變更前,請務必閱讀 貢獻者授權協議和標頭 並簽署下列其中一項協議:
,瞭解如何調查及移除這項存取權。建立分支版本
針對每個您要變更的程式碼,執行下列步驟:
在相關的 Git 存放區中啟動新的分支版本。分支版本並非副本 原始檔案;指向特定修訂版本 建立本機分支版本並在這些分支版本間切換是一項輕量作業變更者: 只要使用分支版本,就能識別彼此的變更。執行下列指令, 啟動分支版本:
repo start BRANCH_NAME
您可以同時啟動多個獨立的分支版本 Cloud Storage 也提供目錄同步處理功能分支版本 BRANCH_NAME 是您本機上的 且不會包含在 Gerrit 或最終來源樹狀結構中。 分支版本也專屬於所在的專案,因此如果需要變更 以便套用相同的變更 。
(選用) 確認分支版本已建立:
repo status .
您應該會看見新建立的分支版本。例如:
project frameworks/native/ branch mynewbranch
進行變更並測試變更
請按照下列步驟進行變更並測試變更:
為確保您使用的是最新的程式碼集,請將 整個程式碼集:
repo sync
如果同步處理過程中發生任何衝突,請參閱步驟 2 至 4 解決同步處理衝突。
找到要變更的代碼。如要尋找程式碼,建議使用 Android 程式碼搜尋工具。你可以使用 Android 裝置 Google Code Search 會在實際使用時列出 Android 開放原始碼計畫原始碼 基礎架構若需更多資訊,請參閲 開始使用程式碼搜尋。 如要查看 Android 程式碼搜尋中
main
分支的所有程式碼, 導航到https://cs.android.com/android/platform/superproject/main
。修改或新增來源檔案。進行的任何變更:
- 請遵循 加入授權標頭。
如果是 Java 程式碼,請遵循 貢獻者的 Android 開放原始碼計畫 Java 程式碼樣式。
Android 開放原始碼計畫的某些部分是以 Kotlin (
.kt
) 編寫,而您可以在 而且已經使用 Kotlin 編寫而成。如要進一步瞭解 如要進一步瞭解 Android 中的 Kotlin,請參考 Android 開發人員 Kotlin 樣式指南和 Kotlin-Java 互通性指南。 如需更詳盡的 Kotlin 指南,請參閱 Kotlin 語言網站。編寫 API 時,請遵守 Android API 規範。 您可以參考這些指南,瞭解 Android 相關 API 決策背後的脈絡。 平台 API 的新增和修改作業均由 Metalava。
測試版本。
暫存及提交變更
修訂是 Git 中修訂版本控制的基本單位,由 整個專案目錄結構和檔案內容的快照。 請按照下列步驟提交變更:
根據預設,Git 會註冊但不會追蹤您所做的變更。目的地: 指示 Git 追蹤變更,因此,您必須標示或暫存變更 也會包含在修訂版本中執行下列指令來暫存變更:
git add -A
這個指令會追蹤您對任何檔案所做的變更。
接著,前往暫存區的檔案修訂版本或將檔案儲存到本機位置 資料庫:
git commit -s
根據預設,系統會開啟文字編輯器並提示您提供 。
請使用下列格式的修訂訊息:
第 1 行:廣告標題。提供一行變更的摘要 (50 個字元) 上限)。建議使用前置字串描述變更的區域,後面加上 。 包含使用者介面變更的範例:
ui: Removes deprecated widget
第 2 行:空白行。然後接續使用空白行。
第 3 行:內文。提供長度為 72 個字元的詳細說明 。說明改變可以解決的問題以及解決方法。雖然人體 有些人需要參考這項變更,因此對他們有幫助 請務必附上簡短的附註,說明任何假設或背景資訊 可以瞭解是否有其他貢獻者使用這項功能時
如要閱讀網誌,瞭解何謂良好的修訂版本說明 (含範例),請參閱 如何編寫 Git 修訂版本訊息。
儲存修訂版本。
專屬變更 ID、您的姓名和電子郵件地址 (
提供的 repo init
期間所提供的資訊,會自動新增到您的修訂訊息中。
上傳變更以供審查
將變更提交至個人 Git 記錄後,請將變更上傳至 Gerrit:
執行下列指令,將您所有的修訂版本 專案:
repo upload
所有專案中的所有變更都會納入上傳作業。
系統會提示您執行掛鉤指令碼。
按下 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)?
依序按下 Y 鍵和 Enter 鍵,即可核准上傳作業。
您應該會收到類似 remote: SUCCESS
的訊息。
申請審查
上傳成功後,Repo 會提供您變更內容的連結: Gerrit。按一下連結即可在審查伺服器上查看變更、新增意見、 或要求特定審查人員進行變更對程式碼所做的變更,都必須 相關的程式碼擁有者申請審查的步驟如下:
在 Gerrit 中,按一下「SUGGEST OWNERS」(建議擁有者):
圖 1. 在 Gerrit 中推薦擁有者連結。
畫面上隨即會顯示審查者對話方塊。這個對話方塊列出的程式碼擁有者清單 可查看您的變更
按一下程式碼擁有者,將對方加進評論。
「傳送」按鈕已啟用。
(選填) 輸入您想審查的其他使用者電子郵件地址 變更。
(選用) 按一下「自動提交」旁的「+1」,即可自動提交變更 在應用程式通過核准後如果未點選這個按鈕,表示 Google 員工 不需提交變更
按一下「傳送」即可將變更送審。
程式碼擁有者查看程式碼變更,並提供意見回饋 解決或核准變更
判斷變更狀態
如要判斷變更內容檔案的狀態,請檢查 所變更檔案旁的圖示:
- (勾號) 圖示):由程式碼擁有者核准
- (交叉圖示): 未經程式碼擁有者核准
- (時鐘) 圖示):正在等待程式碼擁有者核准
下圖顯示了變更中檔案所套用的狀態圖示:
圖 2. 顯示程式碼擁有者核准狀態的檔案範例。
解決意見回饋並上傳替換品
如果審查人員要求修改你的更新內容, 修改 Git 中的修訂版本,讓系統在相同的 變更。
如何解決意見回饋並修改變更內容:
上傳修改過的變更內容時,系統會將 Gerrit 上的原始檔案完全取代 以及本機 Git 歷史記錄
解決同步處理衝突
如果其他變更已提交至與 您會收到衝突訊息。如何解決衝突:
請確認您使用最新的程式碼:
repo sync .
repo sync
指令會從來源伺服器擷取更新,然後 會嘗試將HEAD
自動重新加回新的遙控器HEAD
。如果自動重新計算失敗,請執行手動重新集:
repo rebase .
解決合併衝突。如果沒有偏好的解決方法 合併衝突,您可以 使用
git mergetool
,手動修正檔案之間的衝突。成功修正衝突的檔案後,執行下列指令, 並套用新的修訂版本:
git rebase --continue
提交變更
提交內容之後,會經過審核和驗證程序
Google 審查人員必須為您提交該代碼。其他
使用者可以執行 repo sync
,將更新提取至各自的本機
用戶端。
合併提交內容後,你可以前往 Android 持續整合 儀表板中監控提交內容何時整合到樹狀結構中。