Go Wiki:程式碼檢閱

務必先熟悉貢獻指南中說明的程式碼檢閱流程。

檢閱術語

有幾個程式碼檢閱可能會使用的術語,你應該熟悉這些術語。

CL 指令

電子郵件

來自程式碼檢閱的訊息通常會寄送至三個地方

請不要透過電子郵件回覆程式碼檢閱,因為該訊息 不會傳遞到 Gerrit。務必點選連結並在 Gerrit 中發布回覆。

工作進行中

如果你有還沒準備好要審查的變更,可以把巨型的 DO NOT REVIEW 當作 CL 說明的第二行,這樣看到的人就知道不用再往下看。不要把它當成第一行,因為這樣它會變成整個審查的主旨,即使在你變更說明後也是如此。

類似地,如果你希望確保你的變更不會被錯誤合併,你可以把 DO NOT SUBMIT 當作 CL 說明的第二行。

如果你不需要 Gerrit 的功能,只是想要備份你的工作,在多個客戶端之間共用工作,或有一個暫存 UI 來檢查變更,你可以使用正規的 git 遠端。

若要將 GitHub 當作 git 遠端,你可以分叉 github.com/golang/go 或建立新的 repo。這兩種方式各有優缺點。分叉的 repo 第一次推送會比較快。非分叉的 repo 可以是私人。分叉的 repo 會在 GitHub 的系統中關聯起來。因此,它們很容易被發現,而且支援 GitHub UI 的跨 repo 比較;但這也表示,在分叉 repo 的提交訊息中提到的問題,會在問題中建立到你的分叉。

若要新增你的 git 遠端,請執行類似這樣子的指令

$ git remote add fork git@github.com:yourusername/go.git

之後,你可以用 git push fork branchname 將變更推送到「分叉」遠端。

Gerrit 的程式碼審查模式是改寫單一提交,直到它正確為止。GitHub 會試著防止你意外地覆寫你現有的分叉。你可以透過強制推送到避開這個問題: git push --force fork branchname。或者,你也可以透過在最初使用

$ git remote add --mirror=push fork git@github.com:yourusername/go.git

然後執行 git push fork 將會更新 GitHub,讓它完美地鏡射所有內容(所有分叉、所有標籤等)。這很方便,但使用這個功能時請小心處理多個客戶端。你會繞過一般的 git 防護措施,所以很容易覆寫(因此遺失)其他客戶端推送到的一個工作。


此內容是 Go Wiki 的一部分。