linux下设置SVN钩子 , 自动更新web目录

  • Simon 发布于 2016-08-22
  • 栏目: linux
  • 2515人围观
  • 0评论

很多程序员用SVN来进行版本控制 ,把SVN的内容同步到服务器的web目录中 , 需要手动svn update来更新。那如何在客户端提交到SVN后 ,自动更新到web目录呢?


假设web目录已经从SVN中检出那么我们进入对应的SVN仓库下hooks文件夹

(Simon安装SVN的时候 , 将仓库设置在了/home/svn/ , 我当前项目为sblog) 


cd /home/svn/sblog/hooks/


接下来新建个配置文件 post-commit

vim post-commit

按 i 进入编辑模式

接着输入下列代码

#!/bin/sh

export LANG=zh_CN.UTF-8 #看下面说明1

SVN=/usr/bin/svn  #这里填写你的svn程序目录

WEB=/usr/share/nginx/sblog/ #这里填写你的web程序目录

$SVN update $WEB --username simon --password 123456 #simon 123456为我的客户端帐号密码 

ESC退出编辑模式 , 输入:wq 保存并退出vim


设置post-commit执行权限

chmod 777 post-commit


然后kill掉svn进程 重新开启svn

就可以在客户端提交测试了


说明:

1:出现错误标识为svn: Can't convert string from 'UTF-8' to native encoding

如果项目是UTF-8格式 , 客户端提交时报上述错误 , 请在post-commit中加入

export LANG=zh_CN.UTF-8

保存后需重启SVN服务


错误如图

QQ截图20160719234558.jpg


2:如果web目录还没有检出,请使用

svn checkout svn://你的svn地址/xxx  不重命名文件夹,直接在当前目录下检出xxx目录

或者

svn checkout svn://你的svn地址/xxx myweb 检出并且重命名文件夹为myweb



windows下设置SVN钩子 , 自动更新web目录 , 请看这里

评论