码迷,mamicode.com
首页 > 其他好文 > 详细

svn集成ReviewBoard,让post-commit hook后台运行

时间:2014-09-26 23:18:09      阅读:908      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   io   os   使用   ar   strong   文件   

代码评审(Code Review)不但可以提高质量,而且还是一个知识共享和指导的极好的手段。

代码评审(CodeReview)一般有两种形式:pre-commit-review,post-commit-review。

pre-commit-review是指代码提交到代码库进行代码评审;

post-commit-review是指代码提交到代码库进行代码评审。


ReviewBoard是一个开源的基于web的代码评审工具,支持Subversion,CVS,Git和Mercurial版本控制系统。

svn可以通过post-commit hook与ReviewBoard集成,实现post-commit-review。


其实现原理为:

用户在提交代码至svn完成后触发post-commit钩子脚本

在svn post-commit hook中调用RBtools的rbt post命令连接ReviewBoard自动提交代码评审请求(ReviewRequest)

注:RBtools是ReviewBoard官方提供的python命令行工具。它是用python API与ReviewBoard进行交互。


在使用中出现了如下问题:

用户需要等待post-commit hook执行完毕后才算提交完成

这样直接导致了用户提交代码等待时间过长,影响了用户体验

于是想到让post-commit中调用的rbt post命令在后台运行

这样post-commit就无需等待rbt post执行完成可以发送完rbt post命令后直接返回


得知在linux中&命令可以把作业放到后台执行

可是在post-commit hook中的rbt命令后加了&并不起作用

通过在google上搜索

终于在stackoverflow上找到了这篇文章,最终解决了问题

bubuko.com,布布扣

原来还需要用2>&1把所有的错误输出转换成标准输出,使得错误输出和标准输出都被重定向到一个叫做out.file 的文件中

其中2表示错误输出,1表示标准输出

rbt post "$args" 2>&1 &


不得不说,google和stackoverflow 很强大啊@!



其他:

svn post-commit脚本编写可以参考:reviewboard源码中用户贡献的样例

rbt post 命令官方指南



svn集成ReviewBoard,让post-commit hook后台运行

标签:style   http   color   io   os   使用   ar   strong   文件   

原文地址:http://my.oschina.net/donhui/blog/321130

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!