为什么要codereview
. 整个团队的编码风格是统一的。
. 有高手能对自己的代码指点一二,从而提高编码水平。
. 减少低级错误的出现
. 约束自己写高质量的代码,因为是要给人看的。
我们对codereview的需求
. 很轻松可以发布自己写的代码。
. 很轻松的可以与老代码diff review。
. review的人和被review的人很轻松的交互,而且还能保存交互的历史。
我选择rietveld
基于以上需求,rietveld都满足,web应用是基于jango框架开发,可以通过一个python的客户端上传需要review的代码,而这一切又可以与svn或git无缝对接,因为它的diff是基于,review人员可以在web应用上看上传上来的需要review的代码,并且可以做批注。如果想了解rietveld,可以访问官方文档。http://code.google.com/p/rietveld/
,在这里我就不赘述了。
部署
其实rietveld本来就有个服务器托管,但国内各种被墙(大家都懂的),所以我们需要在搭建一个本地环境,可以按照官网里面的部署方法,切记要选择不基于app-engine的方式,这种是可以直接部署在本地的(我部署时基于app-engine各种麻烦)。大家可以参考http://django-gae2django.googlecode.com/svn/trunk/examples/rietveld/README, 记得进去后直接找“Manual Setup”即可,前提你有个svn客户端和python2.7以上的版本。
checkout Django 1.2.5框架 svn co http://code.djangoproject.com/svn/django/tags/releases/1.2.5/django django svn co http://django-gae2django.googlecode.com/svn/trunk/gae2django checkout Rietveld svn co http://rietveld.googlecode.com/svn/trunk/codereview svn co http://rietveld.googlecode.com/svn/trunk/static svn co http://rietveld.googlecode.com/svn/trunk/templates svn export http://rietveld.googlecode.com/svn/trunk/upload.py 再打补丁: patch -p0 < patches/upload.diff patch -p0 < patches/account-login-links.diff patch -p0 < patches/download.link.diff 再装数据库 ./manage.py syncdb
在部署时会让你添加管理员和密码,你按步骤做就行了,就可以开启web服务了。
在当前目录下:./manage.py runserver 127.0.0.1:8000
在浏览器输入:127.0.0.1:8000, 就可以进入界面了,
这里有个地方需要大家注意下,最开始如果用户登陆会报Modal User找不到getId()的错误,, 这需要找到Modal.py 将user.getId() 全部换成user.id就都OK了。