本指南說明如何將貢獻提交至 Fuchsia 專案。
Fuchsia 會透過 Gerrit 的網頁式使用者介面管理 Git 提交內容和程式碼審查。當提交內容上傳至 Gerrit 時,就稱為「變更」。
如要為 Fuchsia 提供變更,請按照下列步驟操作:
- 必要條件。
- 在 Gerrit 中建立變更。
- 要求審查程式碼。
- 追蹤程式碼審查。
- 提交變更。
1. 必要條件
開始設定前,請務必完成下列事項:
簽署 Google CLA
請完成下列步驟:
- 前往 Google 開發人員的「貢獻者授權協議」頁面。
- 代表您自己或雇主簽署協議。
產生 Cookie
請完成下列步驟:
- 登入 Gerrit。
- 前往 https://fuchsia.googlesource.com。
- 按一下頁面頂端的「產生密碼」。
- 複製產生的程式碼,然後在工作站的終端機中執行。
2. 在 Gerrit 中建立變更
如要在 Gerrit 中建立變更,請按照下列步驟操作:
前往 Fuchsia 目錄,例如:
cd ~/fuchsia
建立新分支:
git checkout -b <branch_name>
在新分支中建立或編輯檔案。
修改或新增程式碼的格式。
fx format-code
新增更新後的檔案:
git add <files>
提交已更新的檔案並寫入修訂訊息:
git commit
將修訂版本上傳至 Gerrit:
git push origin HEAD:refs/for/main
如要進一步瞭解如何上傳變更,請參閱 Gerrit 說明文件。
如要進一步瞭解用於控制提交行為的特殊選項,請參閱「提交訊息選項」。
3. 要求程式碼審查
建立變更後,如要要求程式碼審查,請按照下列步驟操作:
- 前往 Fuchsia Gerrit 資訊主頁。
- 點選「傳送審查」部分中的變更項目。
- 按一下「新增審查者」。
依電子郵件地址新增評論者。
您可以參考
OWNERS
檔案,該檔案位於您進行變更的目錄或其中一個上層目錄中,可協助您找出最適合審查變更的審查人員。如要進一步瞭解 Fuchsia 擁有者,請參閱 OWNERS。按一下「傳送」。
4. 追蹤程式碼審查進度
如要追蹤程式碼審查進度,請使用 Gerrit 的 網路使用者介面。(如要進一步瞭解如何使用 Gerrit 程式碼審查工具,請參閱「Review UI」)。
您提出變更程式碼審查要求後,審查人員就能評分您的變更內容。審查者可以為您的變更標示 -2、-1、0、+1 或 +2 分。(如要進一步瞭解審查標籤定義,請參閱「Gerrit 程式碼審查 - 審查標籤」)。您需要提供程式碼審查標籤 +2,才能提交變更。 只有目錄擁有者才能套用 Code Review Label +2 分數。
如果您需要在審查過程中更新變更,請參閱「附錄」中的「更新並上傳修補程式」(或「解決合併衝突」)。
解決註解
審查人員可能會透過註解說明您必須更新程式碼內容,然後這些內容才能核准您的變更。一般來說,只有在您確定審查者會接受更新內容時,才勾選留言旁的「已解決」核取方塊。如對審查人員是否認同更新內容有任何疑問,請不要勾選「Resolved」(已解決) 核取方塊。
5. 提交變更
只要存放區擁有者將 Code Review Label +2 套用至變更,即可提交變更。提交變更時,系統會將變更提交至修訂版本佇列 (CQ)。修訂佇列會驗證並合併 main
分支的變更。
只有具備修訂版本存取權的協作者可以直接透過 Gerrit 介面提交程式碼。一般會員需要請提交者代為提交程式碼。
附錄
更新及上傳修補程式
建立變更後,如要將修補程式上傳至變更,請執行下列操作:
在同一個分支版本中建立或編輯檔案。
設定更新後的檔案格式:
fx format-code
新增更新的檔案:
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>
設定檔案格式:
fx format-code
完成重新接合:
git rebase --continue
使用
--amend
選項提交更新後的檔案:git commit --amend
將修補程式上傳至 Gerrit:
git push origin HEAD:refs/for/main
刪除本機分支
變更提交後,您可以刪除本機分支:
git branch -d <branch_name>
撰寫變更訊息
撰寫變更訊息時,請遵循修訂版本訊息格式指南。
管理跨多個存放區的變更
如要瞭解如何管理橫跨不同存放區 (花瓣粉) 的變更,請參閱以下頁面:
如要進一步瞭解 Fuchsia 存放區的結構,請參閱「原始碼版面配置」。