Linux下svn文件提交后自动同步更新到网站目录

时间:2022-09-03 12:18:05

本文记录通过svn的钩子脚本实现本地提交svn后,自动同步代码文件到服务器的网站目录下,而不必手动同步。

假如现在有:

SVN版本库中的一个项目:/home/svn/tcyg
网站目录:/home/www/
我们先将SVN版本库中的一个项目checkout到网站目录:

svn co file:///home/svn/tcyg/ /home/www/

这时,网站目录已成为SVN的工作副本,接下来利用SVN的钩子让这个工作副本自动更新。

新建一个post-commit钩子:(The post-commit hook is invoked after a commit.)

vim /home/svn/tcyg/hooks/post-commit

添加以下代码:

#!/bin/sh
REPOS="$1"
REV="$2"
export LANG="zh_CN.UTF-8" #防止乱码
svn update /home/www/ --username Hwei --password 123456 --no-auth-cache #设置登陆账号密码并不缓存

注:不要遗漏第一行的#!/bin/sh,否则post-commit会报代号255的错误。
保存后,修改文件权限为755,否则SVN无法调用执行:

chmod 755 /home/svn/tcyg/hooks/post-commit
OR:
chmod +x /home/svn/tcyg/hooks/post-commit

OK,至此,就完成了svn文件提交后自动同步更新到网站目录的代码了。