很多程序员用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服务
错误如图
2:如果web目录还没有检出,请使用
svn checkout svn://你的svn地址/xxx 不重命名文件夹,直接在当前目录下检出xxx目录
或者
svn checkout svn://你的svn地址/xxx myweb 检出并且重命名文件夹为myweb