svn 同步 linux,linux SVN 中 配置钩子 实现 线上项目同步

本文介绍了如何通过配置SVN的post-commit钩子,实现在提交代码后自动更新线上环境的步骤。首先,将SVN项目导入线上地址,然后在SVN版本库的hooks目录下创建post-commit文件,编写更新线上目录的命令,并设置执行权限。最后,测试确认SVN提交后线上代码能自动更新,解决了中文乱码问题。
摘要由CSDN通过智能技术生成

首先 确保 你的svn 可以使用

第一步:把svn项目导入到你的 线上地址

1,我的svn 项目地址 svn checkout svn://localhost/code/php/CheckWork

2,我的线上项目 地址 为 /webservice/www/www.onLinecd 到  /webservice/www/www.onLine 目录下

然后把svn 上的项目  checkout 到 这个目录下  CheckWork是需要同步的项目

例:

109d03840cbc

第二步:在 svn 项目库的 hooks/ 目录下新建 post-commit 文件

如:

1:/webservice/www/www.svnWork/workSpace 是我的svn 版本库地址

2:vim /webservice/www/www.svnWork/workSpace/hooks/post-commit

在这个文件中 写入:#!/bin/sh    #说明是执行shell命令exportLANG=en_US.UTF-8SVN=/usr/bin/svn      #这里配置的是svn安装bin目录下的svn文件WEB=/webservice/www/www.onLine/CheckWork    #要更新的目录地址$SVN update$WEB--username root  --password root123  #你的svn 用户名称和密码chown-Rwww:www$WEB

如:

109d03840cbc

第三步:让post-commit有执行的权限chmod a+x post-commit

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

说明:

export LANG=en_US.UTF-8是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为UTF8编码,其实SVN默认就是UTF-8编码,如果编码是GBK的话不设置将会出现错误,而执行不成功,错误标识为

1svn: Can't convert string from native encoding to 'GBK'/usr/bin/svn update --username cqh --password 123456 /var/www/html/test 执行更新操作

如果提示:

1post-commit hook failed (exitcode 255) with no output

赋予post-commit文件可执行权限

如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交

这个 时候 只要你svn 代码 更新  那么你线上环境的 代码 也更新了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值