Linux svn自动更新时报错post-post commit hookk failed怎么办

SVN Post-commit常见错误解决方案
阅读:21607次&&&时间: 21:47:40&&
大多数错误是
post commit error svn: MERGE of ’somefile’: 200
post-commit hook failed (exit code 1) with output
post-commit hook failed (exit code 255) with output
等各种错误。。。老实不执行,我发现我可能出现的问题是我首先自动去更新了文件。而且保存了密码导致的。需要删除/root.下面的.subversion即可
贴出自动更新的代码,环境是centos5.5
REPOS=”$1″
REV=”$2″
export LANG=zh_CN.UTF-8
svn up /media/data/wwwroot/meeting –username weiyg –password **** –non-interactive
#!/bin/shREPOS=”$1″REV=”$2″export LANG=zh_CN.UTF-8svn up /media/data/wwwroot/meeting –username weiyg –password weiyg –non-interactive
1、post-commit hook failed (exit code 255) with no output
解决办法:赋予post-commit文件可执行权限,在文件第一行有没有#!/bin/sh,我曾经就出现过这样的问题,在Post-commit第一行不是#!/bin/sh开头也是出现255的
2、Error output could not be translated from the native locale to UTF-8
客户端和服务器编码的问题,默认是utf-8,可尝试设置export LANG=zh_CN.GBK或者export LANG=en_US.UTF-8
3、方法MERGE失败于 “/repos/test”: 200 OK (http://192.168.0.114/)
cp /root/.subversion /var/www -R
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved> 博客详情
摘要: ReviewBoard实现自动post-commit
在svn hooks中使用RBTools工具的rbt post命令向Reviewboard自动提交review request(评审请求)
在实践中遇到的主要问题为:rbt命令在linux终端可以执行但在svn hooks中执行出错
经过不断定位、尝试,终于解决了该问题,记录并分享...
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执行成功。
人打赏支持
开源马克杯
领取时间:
开源马克杯是开源中国定制的“高大上”Coders 喝水利器!
领取条件:购买或拥有开源马克杯的OSCer可领取
领取时间:
开源中国倾力打造的一款写代码无bugT恤
领取条件:拥有开源T恤的OSCer可以领取
参与源创会
领取时间:
“”在线下联结了各位 OSCer,推广开源项目和理念,很荣幸有你的参与~
领取条件:参与过开源中国“源创会”的 OSCer 可以领取
码字总数 32827
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥SVN利用钩子post-commit自动更新到线上测试服务器_服务器应用_Linux公社-Linux系统门户网站
你好,游客
SVN利用钩子post-commit自动更新到线上测试服务器
来源:Linux社区&
作者:darkyl
使用svnadmin create 创建一个版本库:svnadmin create cqzn_server每个版本库的目录下有一个hooks目录:# ls /home/svn/cqzn_server/conf dav db format hooks locks README.txt在每个版本库下有hooks文件夹,里面有很多钩子程序:# ls -l hooks/total 40-rwxr-xr-x 1 www-data www-data 332
16:47 post-commit-rw-r&r& 1 www-data www-data -30 15:22 post-commit.tmpl-rw-r&r& 1 www-data www-data -29 23:28 post-lock.tmpl-rw-r&r& 1 www-data www-data -29 23:28 post-revprop-change.tmpl-rw-r&r& 1 www-data www-data -29 23:28 post-unlock.tmpl-rw-r&r& 1 www-data www-data -29 23:28 pre-commit.tmpl-rw-r&r& 1 www-data www-data -29 23:28 pre-lock.tmpl-rw-r&r& 1 www-data www-data -29 23:28 pre-revprop-change.tmpl-rw-r&r& 1 www-data www-data -29 23:28 pre-unlock.tmpl-rw-r&r& 1 www-data www-data -29 23:28 start-commit.tmpl
注:# start-commit 提交前触发事务&
# pre-commit 提交完成前触发事务&
# post-commit 提交完成时触发事务&
# pre-revprop-change 版本属性修改前触发事务&
# post-revprop-change 版本属性修改后触发事务
在执行commit操作之后会自动执行post-commit这个钩子程序。因此可以设置post-commit来自动更新到线上服务器:操作步骤如下:1. 新建立一个工作副本。mkdir /yin/2、授权:--否则提交会报权限错误。chmod 777 -R /yin/3、进入该目录后,checkout出一个副本,用于同步上线上服务器的路径。cd& /yin/svn co svn://192.168.1.250/cqzn_server注:此副本不能为空:此时该路径为:/yin/cqzn_server& --后面同步时候所需的路径4、设置post-commit脚本以便同步到线上服务器。cd& /home/svn/cqzn_server/hooks
mv post-commit.tmpl post-commit并且修改这个文件:如下内容vim post-commit#Set variable&
SVN=/usr/bin/svn&
WEB=/yin/cqzn_server #/yin/这个目录是上面创建出来做副本同步的目录。RSYNC=/usr/bin/rsync&
LOG=/tmp/rsync_cqzn_server.log&
WEBIP="192.168.1.222"#这个ip是线上web服务器的ip.export LANG=en_US.UTF-8&
$SVN update $WEB --username yinliang --password yinliang if [ $? == 0 ]&
& echo ""& &
& echo `date` && $LOG&
& echo "##############################" && $LOG&
& chown -R nobody:nobody /yin/& &
& $RSYNC -vaztpH& --timeout=90--exclude-from=/home/svn/exclude.list $WEB
#--exclude-from 可不要根据需求不同步的排除5、修改完上面脚本后授执行权限。chmod +x post-commit
综上所述:便可实现自动上传代码到线上服务器。
注:注意几个场景: 这里的环境是SVN服务器与WEB服务器是开的 把SVN服务器定义为源服务器 WEB服务器为目的服务器 场景一、如果目的WEB服务器为综合的混杂的,像只有一个WEB静态资源,用户提交的,自动生成的都在WEB的一个目录下,建议不要用&delete这个参数 上面这个程序就是这样,实现的是源服务器到目的服务器的更新和添加,而没有删除操作,WEB服务器的内容会多于源SVN的服务器的 场景二、实现镜像,即目的WEB服务器与源SVN服务器一样的数据,SVN上任何变化WEB上一样的变化,就需要&delete参数 场景三、不需要同步某些子目录,可能有些目录是缓存的临时垃圾目录,或者是专用的图片目录(而不是样式或者排版的)要用exclude这个参数 注意:这个参数的使用不用写绝对路径,只要目录名称就行 aa代表文件 aa/ 代表目录 ,缺点就是如果有多个子目录都是一样的名称那么这些名称就都不会被同步 建议用&exclude-from=/home/svn/exclude.list 用文件的形式可以方便的添加和删除 exclude.list
.svn/ .DS_Store images/
利用SVN的钩子还可以写出很多的程序来控制SVN 如代码提交前查看是否有写日志,是否有tab,有将换成空格,是否有不允许上传的文件,是否有超过限制大小的文件等等。
相关资讯 & & &
& (07/22/:27)
& (05/02/:04)
& (03月05日)
& (05/16/:23)
& (01/11/:14)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款Linux命令详解 SVN
linux/unix下svn自动更新post-commit hook failed (exit code 255)
svn是一款同步工具了,但让svn自动更新之后发现svn无法使用了,下面我们一起来看看svn出错问题解决办法吧。
linux/unix下svn自动更新出错解决:
post-commit hook failed (exit code 255) with no output.
linux/unix下要实现svn提交后自动更新到测试服务器,添加hook即可/usr/svn/mulu/hooks/post-commit 不带后缀
设置权限为可执行
chmod 777 /usr/svn/baoming/hooks/post-commit
WEB=”/usr/home/mulu”
SVN=”/usr/local/bin/svn”
$SVN update $WEB –username ppkj.net –password ppkj.net || exit 1
其中的exit不可缺失,否则会报错
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:19850次
排名:千里之外
原创:22篇
转载:68篇
(2)(2)(2)(5)(6)(3)(17)(4)(11)(23)(19)

我要回帖

更多关于 svn post commit 的文章

 

随机推荐