貢獻變更

本指南說明如何提交資助 Fuchsia 專案。

Fuchsia 透過 Gerrit 網頁版 UI 管理 Git 修訂版本和程式碼審查作業。將修訂版本上傳到 Gerrit 時,即稱為「變更」

如要為 Fuchsia 做出變更,請按照下列步驟操作:

  1. 必要條件
  2. 在 Gerrit 中建立變更
  3. 申請程式碼審查
  4. 追蹤程式碼審查
  5. 提交變更

1. 必要條件

開始前必須完成以下事項:

簽署 Google CLA

請完成下列步驟:

  1. 前往 Google Developers 的「Contributor License Agreements」頁面。
  2. 代表僅限您本人您的雇主簽署協議。

請完成下列步驟:

  1. 登入 Gerrit
  2. 前往 https://fuchsia.googlesource.com
  3. 按一下頁面頂端的「產生密碼」
  4. 複製產生的程式碼,並在工作站的終端機中執行。

2. 在「Gerrit」中建立變更

如要在 Gerrit 建立變更,請按照下列步驟操作:

  1. 前往 Fuchsia 目錄,例如:

    cd ~/fuchsia
    
  2. 建立新的分支版本:

    git checkout -b <branch_name>
    
  3. 在新分支版本中建立或編輯檔案。

  4. 新增更新過的檔案:

    git add <files>
    
  5. 修訂更新後的檔案,並寫入修訂訊息

    git commit
    
  6. 將修訂版本上傳至 Gerrit:

    git push origin HEAD:refs/for/main
    

    如要進一步瞭解如何上傳變更,請參閱 Gerrit 說明文件

3. 要求審查程式碼

建立變更後,如要要求審查程式碼,請執行下列操作:

  1. 前往 Fuchsia Gerrit 資訊主頁
  2. 按一下您在「傳出審查」專區中的變更。
  3. 按一下「新增觀眾」
  4. 依據電子郵件地址新增審查者。

    您可以參考在變更內容所在目錄或其中之一父項中的 OWNERS 檔案,為變更找出最佳審查者。如要進一步瞭解 Fuchsia 擁有者,請參閱 OWNERS

  5. 按一下「傳送」

4. 追蹤程式碼審查

如要追蹤程式碼審查的進度,請使用 Gerrit 的網頁版 UI。(如要進一步瞭解如何使用 Gerrit 程式碼審查工具,請參閱查看 UI)。

您為變更提出程式碼審查要求後,審查人員就能為您的變更評分。審查人員可使用 -2、-1、0、+1 或 +2 來為您的變更加上標籤。(如要進一步瞭解查看標籤定義,請參閱「Gerrit 程式碼審查 - 審查標籤」一文)。如要提交變更,您需要程式碼審查標籤 +2。只有目錄擁有者才能套用程式碼審查標籤 +2 分數。

如果您需要在審查期間更新變更,請參閱「附錄」中的「建立並上傳修補程式」或「解決合併衝突」一節。

解決註解

審查人員可能會留下註解,說明您必須更新程式碼的內容,才能核准變更。一般來說,只有在您確定審查人員可以接受的更新項目時,才勾選註解旁的「已解決」核取方塊。如有任何疑問,審查人員是否同意您的更新,請不要勾選「Resolved」(已解決) 核取方塊。

5. 提交變更

存放區擁有者將程式碼審查標籤 +2 套用至變更之後,即可提交變更。提交變更時,變更會提交至修訂版本佇列 (CQ)。修訂版本佇列會驗證並合併 main 分支版本的變更。

只有具有修訂版本存取權的協作者可透過 Gerrit 介面直接提交程式碼。一般成員需要要求修訂者提交程式碼。

附錄

建立並上傳修補程式

建立變更後,如要將修補程式上傳至變更,請執行下列步驟:

  1. 在同一分支版本中建立或編輯檔案。
  2. 新增更新過的檔案:

    git add <updated_files>
    
  3. 使用 --amend 選項,在同一修訂版本中加入修補程式:

    git commit --amend
    
  4. 將修補程式上傳至 Gerrit:

    git push origin HEAD:refs/for/main
    

解決合併衝突

當 Gerrit 警告您的變更有合併衝突時,請執行下列操作:

  1. origin/main 重新基底,揭露導致合併衝突的檔案:

    git rebase origin/main
    
  2. 如要解決衝突並新增更新檔案,請編輯這些檔案:

    git add <files_with_resolved_conflicts>
    
  3. 完成配對:

    git rebase --continue
    
  4. 使用 --amend 選項提交更新後的檔案:

    git commit --amend
    
  5. 將修補程式上傳至 Gerrit:

    git push origin HEAD:refs/for/main
    

刪除本機分支版本

提交變更之後,您可以刪除本機分支版本:

git branch -d <branch_name>

撰寫變更訊息

編寫變更訊息時,請遵循修訂訊息樣式指南中的說明。

管理橫跨多個存放區的變更

如要瞭解如何管理跨不同存放區 (寵物) 的變更,請參閱以下頁面:

如要進一步瞭解 Fuchsia 存放區的結構,請參閱原始碼版面配置