How to set up a code review using Gitlab?

How does one set up a code review using Gitlab? I see it listed as a feature on the Gitlab website, but I can't seem to find instructions on how to set one up (For that matter, any link to a Gitlab user manual would be most appreciated).

Some of my searching has indicated that 'Merge Requests' are the way to go... but I'm finding them limiting. An issued merge request shows all of the commits between one branch and the other. I seem to only be able to view diffs generated for each individual commit. For example, let's say I have a file I want to review. It is a new file but I've submitted changes to it over 10 commits on a dev branch. If I issue a merge request for that dev branch from integration I see 10 commits each of which show the incremental changes made to the file... I want to review the entire thing. It is new!

Am I barking up the wrong tree here? Is there an actual code-review tool I can use in GitLab, or are merge requests the way to go, and if they are am I using them incorrectly? what's the best way to set up a proper code review here?


Solution 1:

Note: since GitLab 6.4, side-by-side diff view is available: see "pull request 5308".

(July 2013)There is no possibility yet to comment on each line though, only at the file level.
Daniel Sokolowski mentions in the comments that Per line comments are now supported (09/2014):

Your team members can comment on the merge request in general or on specific lines with line comments.

That still can help for code review activity.

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


6 years later, for GitLab 13.1 (June 2020):

Merge Request Reviews moved to Core

Originally introduced in GitLab 11.4 as a GitLab Premium feature, Merge Request Reviews allow merge request reviewers to:

  • submit multiple comments at once,
  • cutting down on notification noise for the merge request author, and
  • allowing for a more cohesive and streamlined review process.

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

Since its introduction, we’ve re-evaluated its place in our buyer-based pricing model and as part of 13.1 we’re excited to announce this feature has now moved to GitLab Core.

See Documentation and Issue


With GitLab 13.9 (February 2021), you also have:

Request a follow-up review from a Reviewer

Merge request authors receive feedback from reviewers. Often, this feedback needs to be re-reviewed to make sure all issues have been appropriately addressed. As the author of the contribution, you need to communicate the need for a follow-up to your reviewer.

For reviewers who have already reviewed a merge request, you can now request a re-review. This request triggers a To-Do item and email notification to alert the user that you need a follow-up review of your contribution.

https://about.gitlab.com/images/13_9/create_code_review-request-re-review.png -- Request a follow-up review from a Reviewer

See Documentation and Issue.


With GitLab 13.11 (April 2021)

Add standalone comments to merge request reviews

When you’re reviewing changes, you may want to summarize your feedback, or comment on something unrelated to the specific changes. Reviews in GitLab only allowed commenting on the changes or replying to existing comments, which meant that other kinds of comments had to be made after submitting the review.

As part of your review process, you can now submit a general comment along with your replies or change-specific comments. General comments make it simple to provide feedback to the author and use quick actions to update items across the merge request.

Thanks to Lee Tickett for the contribution!

https://about.gitlab.com/images/13_11/code-review-add-comment-mr-review.png -- Add standalone comments to merge request reviews

See Documentation and Issue.

Solution 2:

I've been doing code reviews in Gitlab for over two months with almost no friction. I've setup rss2email to send email notifications everytime a developer pushes new commits. Then I use Gitlab's comment feature for commits to make some comments about the pushed code.

Unfortunately, Gitlab does not allow comments on files itself, only in commits (just like Github, I guess). Whenever I find myself in a situation that I need to comment something that I've missed in a previous commit, I use the blame tool to find the commit that introduced/changed the code section to be commented.

It is far from perfect, but it is working good so far.

Solution 3:

You can see submitted code in Merge Request for other repository or in current repository.
example http://demo.gitlab.com/diaspora/diaspora/commits/master

Then you can add comments to committed file changes (button Reply) or to the whole commit

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

The resulting communication is code review. However, I personally recommend to do code review on one PC with face-to-face communication whenever possible, and use tools for recording results or when more formality is needed.

For a file revue that has a lot of commits, e.g. http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md look at it using blame to understand who did what. However in this view there is no option to communicate and add comments. I would recommend just add changes as comments in this case.

Solution 4:

Yes. Merge requests are how peer reviews are accomplished.

There should be a 'diff' tab that will show the changes of all the commits (mentioned here: http://youtu.be/DyAX8ws5OIc?t=3m2s).

The video also explains nicely how it can be used to peer review.