团队成员之间的 code review 大家都用什么工具?

2012-06-09 01:08:59 +08:00
 Elfe
以前在windows平台上的TFS,做CodeReview非常简单:
开发者在自己机器上改好代码后生成一个shelveset,这个shelveset直接就保存在服务器上了
邮件发送给reviewer告知shelveset名称
reviewer通过tfsodd等工具,打开shelveset,查看代码变化,提意见。reviewer本机并不需要有服务器端代码
review结束后(也许几个来回),开发者check-in shelveset。结束。
也有时候,有些shelveset并不check-in,但一样能留在服务器上以备今后查看。

现在的小公司里,也不知道这群毕业了直接就在这里的小朋友,是没人教不会用呢,还是真的Mac下没有好的code review工具,目前他们要么是直接跑到对方座位上看(于是匆匆而过看得很不仔细),要么就是看天书般的svn diff得到的文件(我觉得这个实在需要超能力才能读)。

我粗粗搜了一下,没找到什么方便的工具,只有若干零星功能的,要合并在一起用才好。
所以我在想,是不是该写个脚本或app。
我大致想要一下几个功能。大家帮我看看,有没有能满足我要求的推荐一下。要没有我就只能自己动手了。
0,每个人在机器上都有一个专门用来做code review 的 workspace。配制好CRWorkSpace的路径参数给下面的工具用
1,开发者在写完程序,敲 cr -create <shelvesetName> <message>
于是
1.1 程序检查开发者当前代码是否update过,没有,提醒并帮助svn update,如有必要弹出FileMerge
1.2 svn diff > shelvesetName.patch, 上传patch到公司的share folder
2, cr -email <shelvesetName> <reviewer's email>发邮件给指定email。邮件中包含一条用以apply patch的 cr -review <shelvesetName> 命令
3,收到邮件的同学copy & paste & run 这条命令
3.1 将程序检查code review workspace的代码版本,sync到和patch一致
3.2 apply patch
3.3 弹出 SmartSVN(免费版)以查看代码自之前一个版本起的变动(可以吗?若不行, reviewer 本机还得准备两个work space,用文件比较工具来查看)
4,开发者执行 cr -commit <shelvesetName>提交代码

基本上就这样,还算蛮简单的。
和原来用TFS相比,就差一个reviewer本机必须有一个用来做code review的专门workspace。这个在以后有多个brunch的时候会遇到麻烦(我原先的项目,最多的时候有十多个brunch同时在做平行开发)

各位都在用什么工具,有可以让我偷懒不自己写的么?

谢啦!
35948 次点击
所在节点    iDev
23 条回复
Elfe
2012-06-09 01:11:37 +08:00
哦对了,tfsodd还有很强的一个,是可以比较两个shelveset之间的差异。
因此第一次review提意见,改了,再做一个shelveset,然后reviewer可以光看新的改动。

这个不知道什么Mac下什么工具能做到
或者,能用若干命令拼接起来达到这个效果么?(当然我并不希望reviewer机器上得要多份workspace)
Elfe
2012-06-09 01:15:40 +08:00
还想起windows下一个很牛的工具,作为VisualStudio的插件安装的,review代码的窗口上可以直接在代码旁边加comments,就像word文档中加comments一样。
因为连接服务器太慢,我个人基本上不太用,以至于现在都想不起名字了。不过确实很不错的工具。
不知这个有Mac版么?
sparklo
2012-06-09 01:19:45 +08:00
如果你不介意没有native-client的话, Crucible很不错.

http://www.atlassian.com/software/crucible/overview
Elfe
2012-06-09 01:36:18 +08:00
@sparklo 网页版的?这个很让人介意啊。东西不放在自己的服务器上,总感觉心慌慌的。
lch21
2012-06-09 01:42:47 +08:00
曾经用beyond compare
ksword
2012-06-09 01:44:22 +08:00
facebook使用phabricator,已经开源了,或者可以试下 http://phabricator.org/#differential
Elfe
2012-06-09 01:46:50 +08:00
@lch21 是要装什么corssover之后才能用?BeyondCompare是很灵光的,尤其比较本地的两个文件夹的时候
sampeng
2012-06-09 01:51:27 +08:00
我有个比较不理解的。。
用svn有啥问题= =代码review一定只看提交和改动部分么。。。。。svn也很快很简单啊。。。。
我倒觉得github是个威武的review的东西。。直接批注上去就是了。
Elfe
2012-06-09 01:52:29 +08:00
@ksword 谢谢!看起来值得周一仔细研究一下。
Elfe
2012-06-09 01:55:03 +08:00
@sampeng 当然是专注在改动部分,但一定要结合整体来看呀。
SVN/XCode对我来说是全新的,我不知道是我没发现这些功能,还是它们确实不存在。我觉得目前我所加入公司的code review简直是灾难。
不知道你是怎么用SVN的,详细解释一下可以么?
sampeng
2012-06-09 11:34:24 +08:00
@Elfe 其实很简单,我们没把事情弄那么复杂。
每个人的代码都是相对独立的。在有良好的代码结构的条件下,直接看他的代码即可。
我工作的两家公司都是如此。
虽然比你的只关注改动部分看的代码要多的多。但好处是全局性的观察。
很多时候review可以看出代码的修改是否影响到了我或者其他程序员的接口功能。。。。。
改接口却不管下层调用的情况太多了。。

而且有些优化性质的第一次看是没感觉的,第二次看突然会觉得某个地方需要优化一下的情况也蛮多的。。所以整体看可以解决这个问题。。

然后就直接写邮件告知。。。也没出现啥问题啊。。。。。
工具用最简单的就行了。。关键在人和做的过程。搞复杂了会打击积极性的。。尤其是有很多人参与的情况下,你喜欢用工具不代表别人也用。那选择大众化的未尝不可。

当然,你说的那种直接跑工位上去看就比较搞笑了。

我还本来想自己做一个review的工具,后来也是转念一想,还真没什么必要。。。。需求太少了。

github你可以试试,简单而高效。批注很给力。当然,前提是公司敢于把代码放上去。虽然github也有私有库。
atempcode
2012-06-09 14:03:11 +08:00
xuwenhao
2012-06-09 14:07:31 +08:00
ReviewBoard,但是觉得不太好用,也就是凑合
kaichen
2012-06-09 14:36:14 +08:00
不放心放在Github的话,可以自己搭一个GitLab http://gitlabhq.com

有个前提,是用Git
clino
2012-06-09 21:54:57 +08:00
可以用 google 的 gerrit,当然前提是也用 gerrit 的 git 服务,很方便好用

或者用 redmine ,这个可以和外部的版本管理服务相配合 svn/hg/git 都可以
sampeng
2012-06-09 22:17:41 +08:00
@kaichen 看了一下,最关键的代码评论功能没有。。
kaichen
2012-06-09 23:58:29 +08:00
@sampeng 有的,和Github一样可以对整个Commit或者某行代码进行comment。Comment的时候还可以选择是Notify整个项目的所有人或者只是Author。
fly2never
2012-06-10 00:00:34 +08:00
@clino redmine+1, 配合code review插件不错
zhangyk
2012-08-11 14:38:55 +08:00
@Elfe Crucible也可以下载安装在自己服务器上。不过不是开源的。
lnsoso
2013-02-06 12:52:56 +08:00
直接每日通过 shell 生成 repos 的 .php diff 来硬读

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/38858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX