如何使用Gitlab设置代码审查?

时间:2013-07-09 22:59:44

标签: git gitlab pull-request

如何使用Gitlab设置代码审查?我认为它在Gitlab网站上列为一个功能,但我似乎无法找到如何设置一个的说明(就此而言,任何Gitlab用户手册的链接都将非常受欢迎)。

我的一些搜索表明“合并请求”是要走的路......但我发现它们有限制。已发布的合并请求显示一个分支与另一个分支之间的所有提交。我似乎只能查看为每个单独的提交生成的差异。例如,假设我有一个我想要查看的文件。这是一个新文件,但我在dev分支上提交了超过10次提交的更改。如果我从集成发出该dev分支的合并请求,我会看到10个提交,每个提交显示对文件进行的增量更改...我想查看整个事情。它是新的!

我在这里咆哮错误的树吗?是否有一个我可以在GitLab中使用的实际代码审查工具,或者是合并请求的方式,如果他们是我使用它们不正确?在这里设置正确的代码审查的最佳方法是什么?

5 个答案:

答案 0 :(得分:23)

注意:由于GitLab 6.4,side-by-side diff view可用:请参阅“pull request 5308”。

(2013年7月)虽然只有在文件级别才有可能对每一行发表评论。
Daniel Sokolowski提及in the comments Per line comments are now supported (09/2014):

  

您的团队成员可以在一般情况下或在具有行注释的特定行上对合并请求发表评论。

这仍然有助于代码审核活动。

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

答案 1 :(得分:8)

我已经在Gitlab进行了两个多月的代码审查,几乎没有任何摩擦。每次开发人员推送新提交时,我都会设置rss2email来发送电子邮件通知。然后我使用Gitlab的注释功能进行提交,对推送的代码做出一些评论。

不幸的是,Gitlab不允许对文件本身进行评论,仅在提交中(就像Github一样,我猜)。每当我发现自己处于需要评论我在之前的提交中遗漏的内容的情况时,我会使用blame工具来查找引入/更改要注释的代码部分的提交。

它远非完美,但到目前为止它仍然运作良好。

答案 2 :(得分:3)

您可以在Merge Request中查看其他存储库或当前存储库中的已提交代码 例如http://demo.gitlab.com/diaspora/diaspora/commits/master

然后您可以为已提交的文件更改添加注释(按钮回复)或整个提交

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

结果communication is code review。 但是,我个人建议尽可能在一台PC上进行代码审查,并使用工具记录结果或需要更多的手续。

对于具有大量提交的文件版本,例如http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md使用 blame 来了解它,了解谁做了什么。但是,在此视图中,没有选项可以进行通信和添加注释。我建议在这种情况下只需将更改添加为注释。

答案 3 :(得分:0)

是。合并请求是同行评审的完成方式。

应该有一个'diff'选项卡,它会显示所有提交的更改(在此处提到:http://youtu.be/DyAX8ws5OIc?t=3m2s)。

该视频还很好地解释了它如何用于同行评审。

答案 4 :(得分: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的一个人

为我工作!