Linux下SVN配置hook经验总结
2013-07-22 14:58
375 查看
前几天给实验室搭建了一个内部测试的开发环境,LAMP、svn提交以及自动部署。
之前没干过这事儿,到最终搞定还是颇费了些周折。总结一下我的经验,主要是hook的自动执行问题。
拿我的post-commit 脚本来说,以下是示例代码:
首先是脚本头部,在Ubuntu下不需要声明,而在CentOS下需要声明,参考当前目录下的 .tmpl模板文件
然后是其中所涉及的命令可能需要写上绝对路径
可以用命令
查看该命令的绝对路径。
如果你是用我这种方法实现自动部署的,那么提交代码之前需要在你的部署环境下co一次,post-commit脚本才可能顺利执行。
不过,调试过程中没有那么顺利,日志文件中有显示日期,说明脚本顺利执行了,不过并没有真正update到web目录。
原因是这样的,你如果用可登录帐户执行update系统会询问你是否保存密码,而在后台运行的svn可没有这个交互机会,于是你需要给svnserve指定一个运行用户,并修改该用户的配置文件让其不自动保存密码。
例如:
是以root用户deamon模式并设置 /home/svn 为根目录启动svn服务
这样只需要修改root用户目录下,修改 .subversion/servers 文件如下两行(即去掉默认前面的注释)
post-commit脚本就能顺利执行了!
之前没干过这事儿,到最终搞定还是颇费了些周折。总结一下我的经验,主要是hook的自动执行问题。
拿我的post-commit 脚本来说,以下是示例代码:
#!/bin/sh SVN=/usr/bin/svn WEB=/var/www/testsite LOG=/home/svn/testsite/hooks/code_deploy_log export LANG=zh_CN.UTF-8 CURDATE=`date` echo "Code Deployed at $CURDATE" >> $LOG $SVN update --username ×××× --password ×××× $WEB >> $LOG chmod -R 777 $WEB >> $LOG
首先是脚本头部,在Ubuntu下不需要声明,而在CentOS下需要声明,参考当前目录下的 .tmpl模板文件
然后是其中所涉及的命令可能需要写上绝对路径
可以用命令
whereis commond
查看该命令的绝对路径。
如果你是用我这种方法实现自动部署的,那么提交代码之前需要在你的部署环境下co一次,post-commit脚本才可能顺利执行。
不过,调试过程中没有那么顺利,日志文件中有显示日期,说明脚本顺利执行了,不过并没有真正update到web目录。
原因是这样的,你如果用可登录帐户执行update系统会询问你是否保存密码,而在后台运行的svn可没有这个交互机会,于是你需要给svnserve指定一个运行用户,并修改该用户的配置文件让其不自动保存密码。
例如:
su - root -c "svnserve -d -r /home/svn"
是以root用户deamon模式并设置 /home/svn 为根目录启动svn服务
这样只需要修改root用户目录下,修改 .subversion/servers 文件如下两行(即去掉默认前面的注释)
store-passwords = no store-plaintext-passwords = no
post-commit脚本就能顺利执行了!
相关文章推荐
- (总结)CentOS Linux搭建SVN Server配置详解
- (总结)CentOS Linux搭建SVN Server配置详解
- (总结)CentOS Linux搭建SVN Server配置详解
- 【工程经验】Linux命令行下常用svn命令总结
- (总结)CentOS Linux搭建SVN Server配置详解
- Readhat Linux5.5 安装SVNService(经验总结)
- (总结)CentOS Linux搭建SVN Server配置详解
- Linux环境SVN命令行使用经验总结
- Linux配置Apache2的经验总结
- (总结)CentOS Linux搭建SVN Server配置详解
- Linux SSH双向认证配置方法和经验总结
- (总结)CentOS Linux搭建SVN Server配置详解
- (总结)CentOS Linux搭建SVN Server配置详解
- (总结)CentOS Linux搭建SVN Server配置详解
- (总结)CentOS Linux搭建SVN Server配置详解
- Linux安装SVN与配置(自己总结)
- Linux环境SVN命令行使用经验总结(转)
- (总结)CentOS Linux搭建SVN Server配置详解
- (总结)CentOS Linux搭建SVN Server配置详解
- linux上关于apache和tomcat配置的经验总结