svn+post-commit实现自动部署

svn+post-commit实现自动部署 2011-12-15 15:18:37
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://songknight.blog.51cto.com/2599480/742725

 

一、安装
#yum install subversion
检查是否安装了svn
#subversion –v
创建svn库和对应的目录
#mkdir /svn/www.test.com
#svnadmin create /svn/www.test.com
二、配置
创建登录svn的用户和密码
#vim /svn/www.test.com/conf/passwd
[users]
用户名=密码
设置svn用户权限
#vim /svn/www.test.com/conf/authz
[/]
用户名=rw
设置svn主配置文件
#vim /svn/www.test.com/conf/
anon-access=none #使非授权用户无法访问
auth-access=write #使授权用户有写权限
password-db=password
authz-db=authz #启用访问控制文件
realm=/svn/www.test.com #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
启用svn:#svnserve –d –r /svn/www.test.com
注可以用—listen-port 参数修改svn的端口
三、连接svn
1、linux主机连接svn
#svn co svn://192.168.1.180
输入用户名和密码后就可以将svn上的数据下载到本地。
2、windows主机连接svn
利用TortoiseSVN工具进行连接。
四、利用svn的post-commit将svn服务器的文件同步更新到固定的目录
#cd /svn/www.test.com/hooks
#cp post-commit.tmpl post-commit
#chmod a+x post-commit
编辑post-commit钩子脚本
#vim post-commit
export LANG=zh_CN.UTF-8 #设定环境变量,如果没有设定可能会出现update报错
SVN=/usr/bin/svn
WEB=/usr/local/apache/htdocs/192.168.1.180
${SVN} update ${WEB} --username rsync --password rsync
注:WEB中指定的目录不能为空目录,需要先checkout
 
报错注解,及解决办法:
1、
svn: Error converting entry in directory '/usr/local/apache/htdocs/192.168.1.180' to UTF-8
svn: Can't convert string from native encoding to 'UTF-8':
svn: ?\229?\164?\141?\228?\187?\182 ?\229?\164?\141?\228?\187?\182 ?\229?\164?\141?\228?\187?\182 ?\229?\164?\141?\228?\187?\182 rsync-3.0.9.tar.gz
原因:svn服务器上的文件存在编码为UTF-8的文件,如果服务器不支持UTF-8编码就会报这个错误。
解决办法:在post-commit钩子脚本中,添加export LANG=zh_CN.UTF-8字段,更改环境变量中的编码。
2、
Skipped '/usr/local/apache/htdocs/192.168.1.180'
这个时候使用命令svn update命令会提示
Skipped ‘.’
原因:192.168.1.180是一个空目录或这个目录不存在
解决办法:先进行手工的checkout,之后再post-commit中将目录指定到checkout的目录,就解决了。

本文出自 “空の心” 博客,请务必保留此出处http://songknight.blog.51cto.com/2599480/742725


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值