Linux CentOS SVN 设置钩子hooks/post-commit来同步更新服务器web目录,实现代码自动部署

做以下操作,首先你的Linux已经装好SVN环境,并能熟练使用SVN。

实现原理:

我们知道要把svn的内容更新到web目录需要手动的svn up,但是今天笔者教你自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。 


第一步:创建web目录

例如:/phpstudy/www/town ,town是网站根目录。

进入到www目录,检出项目

#cd /phpstudy/www

svn checkout svn://121.14.177.178:843/town  检出完成,www下会多一个town文件夹
svn checkout svn://121.14.177.178:843/town test 检出并且重命名文件夹, 检出完成,www下会多一个mytown文件夹

第二步:编写钩子脚本

1.进入到版本库的钩子目录下 (我的目录:/home/svn/repository/town/hooks/)

#cd /home/svn/project/hooks

编辑

#vi post-commit
2.内容如下:

#!/bin/sh
export LANG=zh_CN.UTF-8
#设定语言,根据系统语言设置,如果是UTF-8 就设置为 LANG=zh_CN.UTF-8
SVN=/usr/bin/svn  //SVN路径
WEB=/phpstudy/www/town  //要更新的web目录,也是检出版本库目录
$SVN update $WEB --username junxiang --password jx123456 no-auth-cache


3.保存退出

第三步:给post-commit执行权限

#chmod -R 755 post-commit

第四步:这里就已经完成了,第四步就是测试了。 

说明: 
#!/bin/sh 说明是执行shell命令 
export LANG=zh_CN.GBK 是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码,如果不设置将会出现错误,而执行不成功,错误标识为svn: Can't convert string from native encoding to 'UTF-8' 
/usr/bin/svn update --username lxy --password 123456 /var/www/myproject 执行更新操作 
如果提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限 
如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交 
亲测已成功,如有困难的请加群问群主。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值