本指南說明如何提交資助 Fuchsia 專案。
Fuchsia 透過 Gerrit 網頁版 UI 管理 Git 修訂版本和程式碼審查作業。將修訂版本上傳到 Gerrit 時,即稱為「變更」。
如要為 Fuchsia 做出變更,請按照下列步驟操作:
- 必要條件。
- 在 Gerrit 中建立變更。
- 申請程式碼審查。
- 追蹤程式碼審查。
- 提交變更。
1. 必要條件
開始前必須完成以下事項:
簽署 Google CLA
請完成下列步驟:
- 前往 Google Developers 的「Contributor License Agreements」頁面。
- 代表僅限您本人或您的雇主簽署協議。
產生 Cookie
請完成下列步驟:
- 登入 Gerrit。
- 前往 https://fuchsia.googlesource.com。
- 按一下頁面頂端的「產生密碼」。
- 複製產生的程式碼,並在工作站的終端機中執行。
2. 在「Gerrit」中建立變更
如要在 Gerrit 建立變更,請按照下列步驟操作:
前往 Fuchsia 目錄,例如:
cd ~/fuchsia
建立新的分支版本:
git checkout -b <branch_name>
在新分支版本中建立或編輯檔案。
新增更新過的檔案:
git add <files>
修訂更新後的檔案,並寫入修訂訊息:
git commit
將修訂版本上傳至 Gerrit:
git push origin HEAD:refs/for/main
如要進一步瞭解如何上傳變更,請參閱 Gerrit 說明文件。
3. 要求審查程式碼
建立變更後,如要要求審查程式碼,請執行下列操作:
- 前往 Fuchsia Gerrit 資訊主頁。
- 按一下您在「傳出審查」專區中的變更。
- 按一下「新增觀眾」。
依據電子郵件地址新增審查者。
您可以參考在變更內容所在目錄或其中之一父項中的
OWNERS
檔案,為變更找出最佳審查者。如要進一步瞭解 Fuchsia 擁有者,請參閱 OWNERS。按一下「傳送」。
4. 追蹤程式碼審查
如要追蹤程式碼審查的進度,請使用 Gerrit 的網頁版 UI。(如要進一步瞭解如何使用 Gerrit 程式碼審查工具,請參閱查看 UI)。
您為變更提出程式碼審查要求後,審查人員就能為您的變更評分。審查人員可使用 -2、-1、0、+1 或 +2 來為您的變更加上標籤。(如要進一步瞭解查看標籤定義,請參閱「Gerrit 程式碼審查 - 審查標籤」一文)。如要提交變更,您需要程式碼審查標籤 +2。只有目錄擁有者才能套用程式碼審查標籤 +2 分數。
如果您需要在審查期間更新變更,請參閱「附錄」中的「建立並上傳修補程式」或「解決合併衝突」一節。
解決註解
審查人員可能會留下註解,說明您必須更新程式碼的內容,才能核准變更。一般來說,只有在您確定審查人員可以接受的更新項目時,才勾選註解旁的「已解決」核取方塊。如有任何疑問,審查人員是否同意您的更新,請不要勾選「Resolved」(已解決) 核取方塊。
5. 提交變更
存放區擁有者將程式碼審查標籤 +2 套用至變更之後,即可提交變更。提交變更時,變更會提交至修訂版本佇列 (CQ)。修訂版本佇列會驗證並合併 main
分支版本的變更。
只有具有修訂版本存取權的協作者可透過 Gerrit 介面直接提交程式碼。一般成員需要要求修訂者提交程式碼。
附錄
建立並上傳修補程式
建立變更後,如要將修補程式上傳至變更,請執行下列步驟:
- 在同一分支版本中建立或編輯檔案。
新增更新過的檔案:
git add <updated_files>
使用
--amend
選項,在同一修訂版本中加入修補程式:git commit --amend
將修補程式上傳至 Gerrit:
git push origin HEAD:refs/for/main
解決合併衝突
當 Gerrit 警告您的變更有合併衝突時,請執行下列操作:
從
origin/main
重新基底,揭露導致合併衝突的檔案:git rebase origin/main
如要解決衝突並新增更新檔案,請編輯這些檔案:
git add <files_with_resolved_conflicts>
完成配對:
git rebase --continue
使用
--amend
選項提交更新後的檔案:git commit --amend
將修補程式上傳至 Gerrit:
git push origin HEAD:refs/for/main
刪除本機分支版本
提交變更之後,您可以刪除本機分支版本:
git branch -d <branch_name>
撰寫變更訊息
編寫變更訊息時,請遵循修訂訊息樣式指南中的說明。
管理橫跨多個存放區的變更
如要瞭解如何管理跨不同存放區 (寵物) 的變更,請參閱以下頁面:
如要進一步瞭解 Fuchsia 存放區的結構,請參閱原始碼版面配置。