Go Wiki: コードレビュー
まず、公式の貢献ガイドのコードレビュープロセスをよく理解してください。
レビュー担当者の用語
コードレビューで使用されるいくつかの用語を理解しておく必要があります。
LGTM
— looks good to me (問題ないと思います)SGTM
— sounds good to me (良いと思います)PTAL
— please take a look (見てください)s/foo/bar/
—foo
をbar
に置き換えてください。これはsed構文ですs/foo/bar/g
— 変更箇所全体でfoo
をbar
に置き換えてください
CLディレクティブ
R=foo
— Go CLダッシュボード内でレビュー担当者を割り当てるDO NOT SUBMIT
(コミットメッセージ内) — 提出をブロックする。以下の「作業中」セクションを参照Updates #1234
またはFixes #1234
(コミットメッセージ内) — CLをGitHub issueからリンクし、オプションでCLがマージされた後にissueをクローズする
メール
コードレビューからのメッセージは通常、次の3か所に送信されます
- レビュー担当者(いる場合)
- golang-codereviewsグループ
- 所有者
メッセージがGerritに転送されないため、メールでコードレビューに返信しないでください。常にリンクをクリックして、Gerritに返信を投稿してください。
作業中
レビューの準備ができていない変更がある場合は、CLの説明の2行目に巨大なDO NOT REVIEW
と記述することで、それを見た人がそれ以上見ないようにできます。最初の行に記述しないでください。そうすると、説明を変更した後でもレビュー全体の件名になってしまいます。
同様に、変更が誤ってマージされないようにするには、CLの説明の2行目にDO NOT SUBMIT
と記述します。
Gerritの機能は不要で、単に作業をバックアップしたり、複数のクライアント間で作業を共有したり、変更を確認するためのステージングUIが必要な場合は、通常のgit remoteを使用できます。
GitHubをgit remoteとして使用するには、github.com/golang/goをフォークするか、新しいリポジトリを作成します。それぞれにトレードオフがあります。フォークされたリポジトリは最初のプッシュが高速になります。フォークされていないリポジトリはプライベートにできます。フォークされたリポジトリはGitHubのシステムに関連付けられています。結果として、それらは簡単に発見でき、GitHub UIでリポジトリ間の比較をサポートします。ただし、これは、フォークされたリポジトリのコミットメッセージ内のissueへの参照が、issue内のフォークへの参照を作成することも意味します。
git remoteを追加するには、次のようなコマンドを実行します
$ git remote add fork git@github.com:yourusername/go.git
その後、git push fork branchname
で「fork」リモートに変更をプッシュできます。
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の一部です。