文档章节

ReviewBoard实现自动post-commit,rbt命令在svn hooks中执行出错

donhui
 donhui
发布于 2014/07/31 19:51
字数 605
阅读 3013
收藏 1

ReviewBoard实现自动post-commit

在svn hooks中使用RBTools工具的rbt post命令向Reviewboard自动提交review request(评审请求)

在实践中遇到的主要问题为:rbt命令在linux终端可以执行但在svn hooks中执行出错

经过不断定位、尝试,终于解决了该问题,记录并分享...

欢迎交流

rbt命令用-d开启debug,报错信息如下:

rbt ERROR: svn Command exited with rc 1: ['svn', 'info', 'http://xxx', '--non-interactive']

rbt ERROR: svn: OPTIONS of 'http://xxx' authorization failed

rbt ERROR: No supported repository could be accessed at the supplied url.


由上可知,执行svn hooks的用户无权限访问svn

--non-interactive表示非交互式处理,即使svn命令执行出错也不弹出认证输入框

可知执行svn hooks的用户没有缓存svn认证信息


解决步骤:

1、获取执行pos-commit的用户

在post-commit文件中,echo `who am i`>/tmp/svn-post-commit.log

将执行pos-commit的用户重定向到svn-post-commit.log文件中

获得执行pos-commit的用户为:apache


2、su切换到apache并将home目录的owner改为apache

su apache出现:This account is currently not available

解决之道:

用vi看看 apache的帐号信息
cat /etc/passwd | grep apache
发现它的shell是“/sbin /nologin”,需要将起改成“/bin/bash”

修改完毕后,保存退出

这样再 su apache就可以了


获取apache的home:

可以cat /etc/passwd | grep apache 查看

也可以su apache后cd 或cd ~,在home目录执行pwd查看

得出apache的home为/var/www

将home目录的owner改为apache:chown -R apache /var/www


3、用apache缓存svn认证信息

切换到apache帐号并切换目录为apache的home目录/var/www

首先,需要手动清空.subversion/auth/svn.simple目录下的缓存文件

其次,修改.subversion/servers文件,更改为:store-plaintext-passwords = yes

然后,在某个目录下执行 svn co http://xxx ,会有向导让输入认证信息

这样就将认证信息保存在.subversion/auth/svn.simple目录下

最后,rbt命令在post-commit这个svn hooks执行成功。




© 著作权归作者所有

共有 人打赏支持
donhui

donhui

粉丝 50
博文 82
码字总数 37070
作品 0
杭州
程序员
私信 提问
加载中

评论(1)

x
xiaohauhau
/tmp/svn-post-commit.log 我看到这个文件的内容是空的 啊 怎么回事?请指教
svn集成ReviewBoard,让post-commit hook后台运行

代码评审(Code Review)不但可以提高质量,而且还是一个知识共享和指导的极好的手段。 代码评审(CodeReview)一般有两种形式:pre-commit-review,post-commit-review。 pre-commit-revie...

donhui
2014/09/26
0
5
ReviewBoard代码评审实践总结

代码评审代码评审(CodeReview),顾名思义是对代码进行评审,是软件工程的活动之一。 通过代码评审可以保证代码质量,促进团队知识共享……好处多多。 版本控制与代码评审 软件工程的各个活...

donhui
2014/11/28
0
16
eReviewBoard简要介绍及安装

eReviewBoard 是基于Mylvy的与Eclipse集成的Reviewboard插件。 其官网为:https://github.com/rombert/ereviewboard 它由如下组件组成: Mylyn Reviews Connector: ReviewBoard以及SCM(如:...

donhui
2014/10/13
0
3
docker-reviewboard(让reviewboard安装、迁移更简单)

ReviewBoard是个开源的、可扩展的、友好的基于Web的代码评审工具,是用Python框架Django开发的。 还记得之前安装ReviewBoard时折腾了好久 ReviewBoard官方文档很完善,官网上有详细的安装指南...

donhui
2015/06/30
0
0
svn提交自动同步到web服务器

同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器...

wddqing
2014/02/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
37分钟前
1
0
聊聊storm trident batch的分流与聚合

序 本文主要研究一下storm trident batch的分流与聚合 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout) .p......

go4it
昨天
3
0
3分钟总结Mybatis别名

1.系统内置别名: 把类型全小写(resultType/paramType) 2.给某个类起别名 2.1 alias=”自定义” <typeAliases> <typeAlias type="com.bjsxt.pojo.People" alias="peo"/> </typeAli......

KingFightingAn
昨天
2
0
JAVA设计模式之模板方法模式和建造者模式

一、前期回顾 上一篇《Java 设计模式之工厂方法模式与抽象工厂模式》介绍了三种工厂模式,分别是工厂方法模式,简单工厂方法模式,抽象工厂模式,文中详细根据实际场景介绍了三种模式的定义,...

木木匠
昨天
8
0
C中的宏的使用(宏嵌套/宏展开/可变参数宏)

基本原则: 在展开当前宏函数时,如果形参有#或##则不进行宏参数的展开,否则先展开宏参数,再展开当前宏。 #是在定义两边加上双引号 #define _TOSTR(s) #sprintf(_TOSTR(test ABC))pr...

SamXIAO
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部