Go Wiki:程式碼檢閱
務必先熟悉貢獻指南中說明的程式碼檢閱流程。
檢閱術語
有幾個程式碼檢閱可能會使用的術語,你應該熟悉這些術語。
LGTM
— 看起來對我來說很好SGTM
— 聽起來對我來說很好PTAL
— 請看一看s/foo/bar/
— 請用bar
取代foo
;這是 sed 語法s/foo/bar/g
— 請在你的整個變動中用bar
取代foo
CL 指令
R=foo
— 在 Go CL 行事曆中指派一名檢閱員禁止提交
(在提交訊息中) — 阻止提交;請參閱以下「進行中的工作」章節更新 #1234
或修正 #1234
(在提交訊息中) — 從 GitHub 問題中連結 CL,並可選擇在 CL 合併後關閉該問題
電子郵件
來自程式碼檢閱的訊息通常會寄送至三個地方
- 檢閱員(如果有)
- golang-codereviews 群組
- 擁有者
請不要透過電子郵件回覆程式碼檢閱,因為該訊息 不會傳遞到 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 的一部分。