Go Wiki: コードレビュー

まず、公式の貢献ガイドのコードレビュープロセスをよく理解してください。

レビュー担当者の用語

コードレビューで使用されるいくつかの用語を理解しておく必要があります。

CLディレクティブ

メール

コードレビューからのメッセージは通常、次の3か所に送信されます

メッセージが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の一部です。