linux(Centos6)安装boardreview1.7.1

来源:互联网 发布:和男朋友看电影 知乎 编辑:程序博客网 时间:2024/04/29 02:38

最近要开始团队checkin代码,所以代码审查boardreview很重要,昨天把boardreview搭出来,svnhook那块还没有搞,不过这个简单了。

最关键的是两个问题:

1. boardreview是管理系统,所以依赖的东西特别多。python必须要2.6以上。

2. sourceforge.net被墙了,所以有些东西在pypi上下载后安装就好了。

服务器是centos6,以下是步骤:

安装SVN

echo "for Centos5.5 x86_64bit"echo "refer to: http://wiki.centos.org/HowTos/Subversion"# install apache-svn module.sudo yum install -y mod_dav_svn subversion# start the httpd service.sudo /sbin/service httpd restartsudo /sbin/chkconfig httpd on# modify the httpd confsudo vi /etc/httpd/conf.d/subversion.confecho "add to the end-of-file:"cat<< END<Location /repos>    DAV svn    SVNPath /var/www/svn/repos    AuthType Basic    AuthName "Subversion repos"    AuthUserFile /etc/svn-auth-conf    Require valid-user</Location>END# create user, please input the password.sudo htpasswd -cm /etc/svn-auth-conf winlin# add a guest user for boardreviewsudo htpasswd -m /etc/svn-auth-conf guest# add svn dir.sudo mkdir -p /var/www/svnsudo chown winlin /var/www/svn# create reposcd /var/www/svnsvnadmin create repossudo chown -R apache.apache repos# restart apachesudo /sbin/service httpd restart

安装boardreview


echo "for Centos6 x86_64bit. Centos5.5因为Python是2.4的,无法支持ReviewBoard。"echo "refer to: http://www.reviewboard.org/docs/manual/dev/admin/installation/linux/"####################################################################################################################################################################echo "install mysql"sudo yum install -y mysql-server# set mysql user name to root, password to root.mysqladmin -uroot -p"" password root# create database.mysql -uroot -prootcreate database reviewboard character set utf8;\q####################################################################################################################################################################echo "install docutils for python(docutils.sourceforge.net cannot access)"#sudo easy_install docutilswget http://downloads.sourceforge.net/project/docutils/docutils/0.10/docutils-0.10.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fdocutils%2F%3Fsource%3Ddirectory&ts=1358306675&use_mirror=jaisttar xf docutils-0.10.tar.gz(cd docutils-0.10;sudo python setup.py install)echo "install feedparser"wget http://pypi.python.org/packages/source/f/feedparser/feedparser-5.1.3.tar.bz2#md5=6fb6372a1dc2f56d4d79d740b8f49f25tar xf feedparser-5.1.3.tar.bz2 (cd feedparser-5.1.3;sudo python setup.py install)echo "install python-setuptools python-devel memcached patch"sudo easy_install -U setuptoolssudo yum install -y python-devel memcachedsudo easy_install python-memcachedsudo yum install -y patchsudo easy_install ReviewBoardsudo easy_install mysql-pythonecho "install pysvn for centos, the INSTALL.html in pysvn-1.7.6.tar.gz"sudo yum install -y subversion-develwget http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gztar xf pysvn-1.7.6.tar.gz(cd pysvn-1.7.6; cd Source;python setup.py backport;python setup.py configure;make;)# copyPythonLib="/usr/lib64/python2.6/site-packages/pysvn"sudo mkdir -p ${PythonLib}sudo cp pysvn-1.7.6/Source/pysvn/__init__.py ${PythonLib}sudo cp pysvn-1.7.6/Source/pysvn/_pysvn*.so ${PythonLib}####################################################################################################################################################################echo "install mod_wsgi"sudo yum install -y mod_wsgisite=review.winlin.comecho "create reviewboard site: ${site}"echo "refer to: http://www.reviewboard.org/docs/manual/dev/admin/installation/creating-sites/#creating-sites"# web: admin, admin# mysql-db: root, rootrb-site install /var/www/${site}sudo chown -R apache /var/www/${site}/htdocs/media/uploadedsudo chown -R apache /var/www/${site}/htdocs/media/extsudo chown -R apache /var/www/${site}/data# copy confsudo cp /var/www/${site}/conf/apache-wsgi.conf /etc/httpd/conf.d/${site}.conf# restart apachesudo /sbin/service httpd restartecho "set hosts:"echo "192.168.11.222 review.winlin.com"echo "open in browser:"echo "http://review.winlin.com"##################################################################################################################################################################### create review request.sudo easy_install -U RBTools# update svn propertyecho "set hosts:"echo "192.168.11.222 review.winlin.com"sudo vi /etc/hosts# checkout the repossvn co http://review.winlin.com/reposcd repos/svn propset reviewboard:url http://review.winlin.com .svn ci -m "update reviewboard url"# do some changes.# for example, change code.# then use post-review to submit review.# --target-group sepcifies the users to review.# --description specifies the description of review, required by publish.# --publish if not publish, it's a draft and we must publish it manually.post-review --summary="support more AMF0 codec" --target-group=reviewer --description="update amf0" --publish --username=winlin --password=winlin


修改svnhook

本打算用reviewboard-svn-hooks,但是看了源码,以及配置文件版本太多,就计划自己写hook了。

其实hook很简单,把/var/www/svn/repos/hooks/pre-commit.tmpl拷贝为/var/www/svn/repos/hooks/pre-commit,并加上执行权限就好了。

在用户提交时,会调用这个脚本,exit 0表示通过,exit 1表示阻止。

这个脚本可以调用boardreview的api,获取审查的信息。

1. 希望简化流程,用一个工具提交review request,提交svn。

2. 希望提交后自动修改review request的状态。

3. 不希望用复杂的技术,越简单越好,不用shelve和mysql等。

4. 退出的错误码希望很多,不仅仅是1.

5. 打印错误信息,譬如提交的格式不对之类。

6. 能支持redmine和boardreview。

7. 这个hook将会开源,这个没有问题,哈哈。


BoardReview1.7.1支持SVN+SSH的bug

现在用easy_install BoardReview已经是1.7.2了,作者说这个bug已经修正了。

##################################################################################################################################################################### BUG1: 无法支持svn+ssh服务器# 添加svn+ssh的respository时,会出现:# Do you trust this host, or do you want to go back and edit the repository information?# 但是两个按钮都是灰色的,这个是个1.7.1的bug,参考:# https://groups.google.com/forum/?fromgroups=#!topic/reviewboard/uHUjwtm-nxY# 有绕过去的方法:# 在boardreview的机器上执行以下命令:# 如果是https,使用证书的,用以下方式:cat <<ENDsvn list https://xxxx将.subversion/auth/svn.simple 拷贝到 /var/www/review.winlin.com/data/.subversion/auth/svn.simpleEND# 如果是svn+ssh,使用ssh的,用以下的方式:cat <<ENDssh svn.rdb.chinacache.net将 .ssh 目录拷贝到 /var/www/review.winlin.com/dataEND