Gitlabを使用してコードレビューを設定するにはどうすればよいですか?


86

Gitlabを使用してコードレビューを設定するにはどうすればよいですか?Gitlab Webサイトに機能としてリストされているようですが、セットアップ方法の説明が見つからないようです(さらに言えば、Gitlabユーザーマニュアルへのリンクをいただければ幸いです)。

私の検索のいくつかは、「リクエストのマージ」が進むべき道であることを示しています...しかし、私はそれらが制限されていることに気づいています。発行されたマージ要求には、1つのブランチと他のブランチの間のすべてのコミットが表示されます。個々のコミットごとに生成された差分しか表示できないようです。たとえば、確認したいファイルがあるとします。これは新しいファイルですが、devブランチで10回以上のコミットで変更を送信しました。統合からその開発ブランチのマージリクエストを発行すると、それぞれがファイルに加えられた増分変更を示す10個のコミットが表示されます...全体を確認したいと思います。それは新しい!

ここで間違った木を吠えていますか?GitLabで使用できる実際のコードレビューツールはありますか、それともマージリクエストが進むべき道ですか?それらが間違っている場合は使用していますか?ここで適切なコードレビューを設定するための最良の方法は何ですか?


2
GitLab 6.4とその並列差分ビューはコードレビューに役立ちます:以下の私の答えを
VonC 2014年

1
GitLab 13.1(2020年6月)では、マージリクエストレビューがあります。参照してください以下の私の答えに編集
VonC

回答:


25

注:GitLab 6.4以降、サイドバイサイドの差分ビューを使用できます。「プルリクエスト5308」を参照してください。

(2013年7月)ただし、ファイルレベルでのみ、各行にコメントする可能性はまだありません。
Daniel Sokolowskiコメントの中で、行ごとのコメントがサポートされるようになったと述べています(2014年9月)。

チームメンバーは、マージリクエスト全般、または行コメント付きの特定の行にコメントできます。

それでも、コードレビューアクティビティに役立ちます。

https://f.cloud.github.com/assets/4224518/1558702/e0fe633a-4fa3-11e3-9388-3f3e445cb6d4.png


6年後、GitLab 13.1(2020年6月)の場合

マージリクエストレビューがコアに移動しました

もともとGitLab11.4でGitLabPremium機能として導入されたマージリクエストレビューでは、マージリクエストレビュー担当者は次のことができます。

  • 一度に複数のコメントを送信し、
  • マージリクエストの作成者の通知ノイズを削減し、
  • よりまとまりのある合理化されたレビュープロセスを可能にします。

https://about.gitlab.com/images/13_1/batch_comments.png

導入以来、購入者ベースの価格設定モデルでの位置付けを再評価し、13.1の一環として、この機能がGitLabCoreに移行したことを発表できることを嬉しく思います。

ドキュメント問題を参照してください


行ごとのコメントがサポートされるようになりました:「チームメンバーは、マージリクエスト全般、または行コメント付きの特定の行にコメントできます。」(about.gitlab.com/2014/09/29/gitlab-flow
ダニエルSokolowski

1
@DanielSokolowski素晴らしい!わかりやすくするために、回答にコメントを含めました。
vonC 2014年

9

私はGitlabで2か月以上コードレビューを行っており、ほとんど摩擦はありません。開発者が新しいコミットをプッシュするたびに電子メール通知を送信するようにrss2emailを設定しました。次に、コミットにGitlabのコメント機能を使用して、プッシュされたコードについてコメントを付けます。

残念ながら、Gitlabはファイル自体へのコメントを許可せず、コミットでのみ許可します(Githubと同じように)。以前のコミットで見逃したものにコメントする必要がある状況に陥ったときはいつでも、非難ツールを使用して、コメントするコードセクションを導入/変更したコミットを見つけます。

完璧にはほど遠いですが、今のところうまく機能しています。


1
rss2emailの代わりに、Gitlab通知を使用してプッシュに関する通知を受け取ることができます。
vadipp 2015

私は同じ問題/回避策を持っています。diffまたはファイルビューの特定の行を非難するコメントを右のコミットに追加できるのは素晴らしい機能の追加だと思います(つまり、Webインターフェイスからファイルまたはdiffを参照し、非難を実行していません)。
AlejandroVD

2

送信されたコードは、他のリポジトリのマージリクエストまたは現在のリポジトリで確認できます。
http://demo.gitlab.com/diaspora/diaspora/commits/master

次に、コミットされたファイルの変更にコメントを追加できます(ボタン Reply)またはコミット全体に

http://demo.gitlab.com/diaspora/diaspora/commit/42f47626890218a180870bc3f44ec57625b0779c

結果として得られるコミュニケーションはコードレビューですです。ただし、個人的には、可能な限り対面でコミュニケーションをとる1台のPCでコードレビューを行い、結果を記録するため、またはより形式的なものが必要な場合はツールを使用することをお勧めします。

コミットが多いファイルレビューの場合、たとえばhttp://demo.gitlab.com/diaspora/diaspora/blame/master/README.md を使用blameして、誰が何をしたかを理解します。ただし、このビューでは、通信してコメントを追加するオプションはありません。この場合、コメントとして変更を追加することをお勧めします。


7
私はあなたの答えの最初、2番目そして最後のリンクのために404を取得します。
ブライアンオークリー

1
ホームページにあるように、demo.gitlab.comは「サンドボックスです– 1時間ごとにリセットされます」ので、すべての例が消去されました。これは例としては良い乗り物ではありません。
Uriah Blatherwick 2014年

はい、適切な例を使用して設定を再検討してください。あなたの答えは一般的に確かなアドバイスのようです。
データ

0

はい。マージリクエストは、ピアレビューを実行する方法です。

すべてのコミットの変更を表示する「diff」タブがあるはずです(ここで言及:http//youtu.be/DyAX8ws5OIc?t = 3m2s)。

ビデオはまた、ピアレビューにどのように使用できるかをうまく説明しています。


0

コードレビューの通常のユースケースは、マスターなどにマージする前にブランチ上のコードをレビューすることです。プロジェクトを開発し、チームの全員がすべてのコードをレビューしてほしいという状況があります。

私がしたことは:

最初のコミットをチェックアウトし、それに変更を加え、コミットしてプッシュします

git co -b FIRST_COMMIT eb67f06c2b3222c0219214b176c41922bc454881
vi README.md
git add README.md
git ci -m "First commit modified so can get full diff against it"
git push --set-upstream origin FIRST-COMMIT

最後のコミットをチェックアウトし、それに変更を加え、コミットしてプッシュします

git co -b master
vi README.md
git add README.md
git ci -m "Last commit modified so can get full diff against it"
git push --set-upstream origin LAST-COMMIT

GitLab / GitHubで、プルリクエストを作成します

  • これは、LAST_COMMITからFIRST_COMMITにマージするものです。

私のために働く!


これにより、リポジトリに2つの「ジャンク」ブランチが残り、マスターブランチのコメントが追跡されなくなりませんか?コメントにコードの変更が必要な場合は、それらをマスターにマージしますか?
user2084572

はい、簡単に削除できるFIRST_COMMITブランチとLAST_COMMITブランチがあります(git br --delete --force origin FIRST_COMMIT LAST_COMMIT; git br --delete --force FIRST_COMMIT LAST_COMMIT)。マスターから別のブランチを使用して、その変更を含めるか、手動で個別の問題を作成することができます。フィードバックが多すぎる場合は、後で1つ以上のブランチ(たとえば、問題ごとに1つ)を作成します。
HankCa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.