读书人

Code Review工具引见及安装

发布时间: 2012-06-26 10:04:13 作者: rapoo

Code Review工具介绍及安装

一、JCR - Java Code Reviewer
??? JCR是一个基于Python的Web应用,面向大型项目和非常正式的Code Review。可以用来Review任何类型的代码,不仅是java代码,但一些特殊的功能只适用于Java项目。
??? JCR 主要想协助:
??? 审查者 - 所有的代码更改都会高亮显示,支持大多数语言的语法高亮。会显示出添加评语的代码块。如果Review Java代码,可以点击代码中的类名来查看相关类的声明。
??? 项目所有者 - 可以轻松创建并配置需要Review的项目,支持(但不需要)集成SCM。
??? 流程信仰者 - 所有评语的细节都会记录在数据库中,包括每一个评语需要的动作及完成状态,并且会有状态报告,以及各种各样的统计。
??? 架构师和开发者 - 可以查看所有Review项目的细节,也可以查看特定文件的评语,有利于重构代码。

官方主页:http://jcodereview.sourceforge.net
当前版本:0.7.2.1(2010-04-13)
支持的SCM:SVN,也支持上传文件的方式。
支持的数据库:PostgreSQL 8.x、MySQL 5.x、Sqlite。
Web Server:JCR使用Pylons内建的Web Server,不需要其他的Server。
依赖的软件:
??? Python 2.4 或更新(推荐2.5+)? http://python.org/
??? Pysqlite(DB-API 2.0 interface for SQLite databases) http://code.google.com/p/pysqlite/
??? Setuptools http://pypi.python.org/pypi/setuptools
??? Pysvn http://pysvn.tigris.org/servlets/ProjectDocumentList?folderID=1768(使用svn时需安装)
注意:下载Pysqlite、Setuptools时,应选择与Python一致的版本。

Windows下安装步骤
??? 本例使用SQLite数据库,仅为体验JCR,采用了最精简的安装方式。如正式使用推荐使用其它数据库,安装步骤请参阅JCR安装文档。
??? JCR 使用了一些Linux/UNIX/GNU工具 (tar、gzip、unzip等)来支持上传文件方式的Review。因此在windows下仅能使用svn的方式,或者在windows下安装Cygwin(http://cygwin.com/),它提供了GNU工具。另外http://gnuwin32.sourceforge.net/提供了很多GNU工具,不知是否能被利用,JCR文档中没有提及。
1) 安装Python
2) 安装Setuptools
??? 安装完后,增加“Python/Scripts”到PATH环境变量。
3) 安装Pysqlite
4) 安装JCR
??? 解压JCR压缩包到某一路径,如“D:\ jcr-0.7.2.1”,在命令行运行如下命令:
% cd D:\jcr-0.7.2.1
% easy_install -f . jcr
??? 运行此命令后,将先安装一系列的依赖(Pylons、Paster、Sqlalchemy、Authkit等),然后安装JCR,JCR安装在“Python\Lib\site-packages”路径下。
??? 在windows下,还需执行如下命令安装webob:
easy_install "WebOb==0.9.6.1"
5) 生成JCR配置文件
??? % cd D:\jcr-0.7.2.1
??? % paster make-config jcr jcr.ini
??? 执行此命令后,将在当前路径下生成配置文件jcr.ini。使用Sqlite数据库时,不需修改任何配置;使用其他数据库时,应修改database URL(sqlalchemy.url)、base directory(jcr.base.dir)、log file path(args)等。
6) 装配JCR
??? % cd D:\jcr-0.7.2.1
??? % paster setup-app jcr.ini
??? 执行此命令后,将初始化JCR数据库,并建立一个样例工程。
??? 注意:在windows下安装时将提示缺少GNU工具,输入“y”后,才能继续安装。
7) 启动JCR
??? % cd D:\jcr-0.7.2.1
??? % paster serve jcr.ini
??? 执行完毕后,登录JCR:http://localhost:5000/。JCR预设了三个用户,密码为“password0”。
admin 管理员或超级用户。
johnd 正常用户,是样例工程的拥有者。
wille 正常用户。
??? 如果要使用Subversion repository,必须使用admin用户,选择Maintenance/Repositories,维护repository信息。
二、 Codestriker
??? Codestriker是一个开源的、基于Web的应用,支持在线Code Review,支持常用的SCM和数据库。Codestriker用Perl语言编写,可运行在所有的主流平台和浏览器下。

官方主页:http://codestriker.sourceforge.net/
当前版本:1.9.10(2009-11-02)
支持的SCM:CVS、Subversion、Perforce、Visual Source Safe、ClearCase、Bugzilla。
支持的数据库:MySQL、PostgreSQL、Oracle、SQL Server、Sqlite,如要使用其它数据库需自己实现Perl DBI interface。
支持的Web服务器:Apache HTTP Server、IIS。
依赖的软件:
??? ActivePerl-5.8.8.822
注意:应使用ActivePerl5.8,可从网络搜索,ActivePerl官方主页只提供了最新版本。
(ActivePerl官方主页:http://www.activestate.com/activeperl/downloads)。
??? highlight-setup-3.5 http://www.andre-simon.de/ 用来高亮显示代码。

Windows下安装步骤
1)下载codestriker压缩包并解压到某个路径,如“D:\codestriker-1.9.10”。
2)建立codestriker数据库
????以MySQL为例,在mysql的提示符下输入下面的命令并执行:
CREATE DATABASE codestrikerdb CHARACTER SET utf8;
GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP,REFERENCES
ON codestrikerdb.* TO codestriker@localhost IDENTIFIED BY ‘cspasswd’;
FLUSH PRIVILEGES;
QUIT
注意:如未使用以上数据库名、用户名、密码,或使用了其他数据库,应修改codestriker根目录下的配置文件codestriker.conf。配置文件中提供了几种数据库配置示例。
3)安装ActivePerl
??? 安装完毕后,增加“C:\Perl\bin”到 path环境变量。
4)安装highlight
??? 安装完毕后,修改codestriker配置中的$highlighter项。
5)运行install.pl
% cd D:\codestriker-1.9.10\bin
% install.pl
??? 运行install.pl后,将提示缺少的Perl modules及安装方法。
??? 需运行如下命令后,然后再次运行install.pl。
ppm install http://theoryx5.uwinnipeg.ca/ppms/DBD-mysql.ppd
ppm install http://theoryx5.uwinnipeg.ca/ppms/Template-Toolkit.ppd
install.pl成功运行后将初始化codestriker数据库。
install.pl可多次运行,可用来升级codestriker,或codestriker安装位置变更后,用来更新配置。
6)安装配置Apache HTTP Server
??? 使用的Apache HTTP Server的版本为2.0,为避免一些问题,安装路径不要有空格,安装完毕后需修改conf中的配置文件httpd.conf,并重启Apache。
Codestriker可运行在两种模式下CGI Script、modPerl。modPerl模式性能更高。
CGI Script配置
????在apache配置文件中增加如下配置,其中“D:/codestriker-1.9.10”为codestriker安装位置。
ScriptAlias /codestriker/ "D:/codestriker-1.9.10/cgi-bin/"
Alias /codestrikerhtml/ "D:/codestriker-1.9.10/html/"

<Directory "D:/codestriker-1.9.10/cgi-bin/">
??? AllowOverride None
??? Options ExecCGI
??? Order allow,deny
??? Allow from all
??? SetHandler cgi-script
</Directory>

<Directory "D:/codestriker-1.9.10/html/">
??? AllowOverride None
??? Allow from all
</Directory>
modPerl配置
????先安装mod_perl,命令如下(可到http://theoryx5.uwinnipeg.ca/ppms/查看mod_perl对应的apache版本):
ppm install http://theoryx5.uwinnipeg.ca/ppms/mod_perl-2.0.ppd

????修改apache配置文件,增加如下内容:
LoadFile "C:/Perl/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so

Alias /codestriker/ "D:/codestriker-1.9.10/cgi-bin/"
Alias /codestrikerhtml/ "D:/codestriker-1.9.10/html/"

<Directory "D:/codestriker-1.9.10/cgi-bin/">
??? SetHandler perl-script
??? PerlHandler ModPerl::Registry
??? Options +ExecCGI
</Directory>
<Directory "D:/codestriker-1.9.10/html/">
??? AllowOverride None
??? Allow from all
</Directory>
????本人曾尝试使用Apache 2.2,在modPerl模式下,不能访问网页,还请有经验的高手指教。
7)运行codestriker
??? 重启Apache后,在浏览器地址栏输入http://localhost/codestriker/codestriker.pl。
?
??? 其它email、scm等配置请参阅codestriker文档。
三、Jupiter
??? Jupiter是Eclipse IDE的一个开源Code Review 插件。以XML格式存储数据,安装及使用都比较简单。
官方主页:http://code.google.com/p/jupiter-eclipse-plugin/
当前版本:3.6.0(2011-01),支持Eclipse3.3及以上版本。
安??? 装:下载jar包,拷贝到Eclipse plugins目录即可。
四、Review Board
??? Review Board是基于Web的Code Review工具。适用于不同规模的项目,支持pre-commit和post-commit两种Review方式,并提供了多种工具,是当前最活跃的Code Review项目。

官方主页:http://www.reviewboard.org/
当前版本:1.6.4.1(2012-02-28)
RBTools当前版本:0.4.1(2012-02-29)
支持的SCM:Bazaar、CVS、ClearCase、Git、Mercurial、Perforce、Plastic SCM、Subversion
支持的数据库:MySQL v5.0.31或更新、PostgreSQL、sqlite v3
支持的Web Server:Apache + mod_wsgi 或 mod_python 或 fastcgi,lighttpd + fastcgi
依赖软件:
? Python 2.7? http://python.org/
? Python Setuptools? http://pypi.python.org/pypi/setuptools
? GNU patch? http://sourceforge.net/projects/gnuwin32/files/patch/
? Memcached for Windows? http://code.jellycan.com/memcached/
? (Memcached官方主页 http://memcached.org/)
? Python Imaging Library? http://www.pythonware.com/products/pil/
? PyCrypto? http://files.cnblogs.com/brucenan/pycrypto-2.2.win32-py2.7.rar
Windows安装步骤
1、安装Python、Setuptools
????安装完毕后,增加C:\Python27;C:\Python27\Scripts 到Path环境变量
2、安装GNU patch
????安装完毕后,增加patch.exe所在路径到 Path环境变量
3、安装Memcached
????Memcached是一个高性能的缓存服务器。可选项,为提高服务器响应速度推荐安装。
1)下载Memcached for Windows(http://code.jellycan.com/memcached/)
2)解压Memcached到一个路径(如C:\memcached)
3)从命令行安装memcached 服务
????memcached.exe -d install
4)启动memcached 服务
? ?? 可从windows服务管理器启动,也可运行如下命令启动服务:
?? memcached.exe -d start
?? (注:可通过memcached.exe -h查看其它命令参数)
5)安装python-memcached
????easy_install python-memcached
4、安装Python Imaging Library
5、安装PyCrypto
????PyCrypto 提供 SSH repository 支持。
????官网提供的PyCrypto下载地址为:http://www.voidspace.org.uk/python/modules.shtml#pycrypto,安装后启动Apache出错,输出如下日志:
File "D:\\Python27\\lib\\site-packages\\django-1.3.1-py2.7.egg\\django\\core\\handlers\\wsgi.py", line 250, in __call__
self.load_middleware()
File "D:\\Python27\\lib\\site-packages\\django-1.3.1-py2.7.egg\\django\\core\\handlers\\base.py", line 47, in load_middleware
raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
ImproperlyConfigured: Error importing middleware reviewboard.admin.middleware: "DLL load failed: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3"
mod_wsgi (pid=4524): Exception occurred processing WSGI script 'D:/Server/reviewboard/htdocs/reviewboard.wsgi'.
????google后发现是PyCrypto编译的包有问题,需要在windows下重新编译。
????幸好有网友将其编译的包共享了(开头列出的PyCrypto地址),大家就不用再下一堆东东自己重新编译了,其博文地址为:
http://www.cnblogs.com/Leo_wl/archive/2012/02/29/2373709.html
6、安装Review Board
???easy_install ReviewBoard
???将自动下载和安装最新稳定版本的Review Board及其依赖—jblets、Django-Evolution、Django、paramiko、flup)
7、安装数据库绑定
MySQL
easy_install mysql-python

PostgreSQL
easy_install psycopg2

SQLite
easy_install pysqlite
注:如果使用Python2.5或更高版本,已经包含SQLite,不需要安装。
8、安装版本控制组件
????以SVN为例,需安装PySVN,下载地址:

http://pysvn.tigris.org/servlets/ProjectDocumentList?folderID=1768

Amazon S3 http://aws.amazon.com/s3/


10、创建ReviewBoard站点
????运行如下命令:
????rb-site install D:\reviewboard
????说明:“D:\reviewboard”为站点安装路径,要使用不存在的路径,rb-site会自动创建。运行命令后,按提示输入各参数值。使用Apache时推荐使用mod_wsgi,fastcgi有内存泄漏问题,mod_python Apache已经不再开发(最后更新日期为2003-07-09)。推荐安装和使用memcached,将很大的提高ReviewBoard性能。
11、配置Web Server
????rb-site在conf路径下创建了Web Server样例配置文件。
????以Apache为例,如果选用了mod_wsgi,要先安装mod_wsgi模块,下载地址为:
http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so
下载后将文件重命名为mod_wsgi.so,然后拷贝到Apache modules目录下,在Apache\conf\httpd.conf 配置文件中添加:LoadModule wsgi_module modules/mod_wsgi.so。
?? ?最后将rb-site生成的apache-wsgi.conf的文件内容拷贝到httpd.conf中。
????重启Apache,访问http://localhost。
?
Code Review工具引见及安装
? ? “dashboard”页面:
Code Review工具引见及安装???

??? 点击“Admin”进入管理页面:
Code Review工具引见及安装
?
????点击ReviewBoard图标可返回Dashboard页面。
12、安装RBTools
????运行如下命令安装RBTools:
????easy_install -U RBTools
????安装diffutils http://gnuwin32.sourceforge.net/packages/diffutils.htm
????在目录$USERPROFILE\AppData\Roaming(Win7)下,创建.reviewboardrc文件,在其中添加如下内容:
REVIEWBOARD_URL = http://10.1.39.84

???安装完毕后,就可以使用post-review命令了。如:

pre-commit review
???post-review(创建新的Review请求,并post未提交的修改差异)
???post-review -r 42(更新存在的Review请求)

post-review --revision-range=STARTREV:STOPREV

post-review --revision-range=REVISION


五、Rietveld
??? Rietveld是基于Web的Code Review工具,作者为Python之父Guido van Rossum,是在Mondrian工具基础上开发的。它使用了目前流行的web开发框架Django,支持Subversion。现在,任何在 Google Code 上托管的项目都可以使用 Rietveld 以及 Python Subversion 服务器。可以从官网下载它的源码。

官方主页:http://code.google.com/p/rietveld/
中文文档:http://code.google.com/intl/zh-CN/appengine/articles/rietveld.html
依赖软件:Python 2.5+(不支持Python 3)
六、Groogle
??? Groogle是基于Web的Code Review工具,支持Subversion。 Groogle是LAMP (linux+apache+mysql+php)应用,仅支持在linux下安装。主要提供以下功能:
??? 集成Subversion
??? 支持单个文件和archive(zip、tar、gzip和bzip2)文件上传
??? 支持多种语言的语法高亮
??? 支持整个版本树的比较
??? 当Review状态改变或需要执行时,邮件通知参与者
??? 支持大多数浏览器
??? 集成认证机制
??? 对多个不同的team,支持不同的Review方式
??? 强制安全登录
??? 无缝升级

官方主页:http://groogle.sourceforge.net/
当前版本:0.9.3(2010-11-19)

读书人网 >开源软件

热点推荐