1 找到SVN的bin目录
/usr/local/svn/bin/svn
2 执行下面命令,第一次checkout到web目录
svn co svn://xxxxxx/pro1/trunk /home/web/xxx.com/ --username myname
svn co svn://xxxxxx/pro2/trunk /home/web/yyy.com/ --username myname
3 新建脚本usvn.sh,把脚本放到/usr/bin目录,设置可执行权限,具体目录看
环境变量的配置:vi /etc/profile
#!/bin/bash
/usr/local/svn/bin/svn up /home/web/xxx.com
/usr/local/svn/bin/svn up /home/web/yyy.com
4 服务器手工执行 usvn.sh 即可同步代码
备注,实现自动同步:
增加hooks(钩子)文件
在/var/svn/foo/hooks/目录中
# start-commit 提交前触发事务
# pre-commit 提交完成前触发事务
# post-commit 提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务
先从模板复制一个post-commit文件:
cp post-commit.tmpl post-commit
编辑该文件
vi post-commit
#!/bin/sh
# 配置库地址
REPOS="$1"
REV="$2"
# WEB目录
BASEPATH=/var/www
# web文件夹名与svn库名相同
NAME=$(basename $REPOS)
WEBPATH="$BASEPATH/$NAME"
# 避免中文信息乱码
export LANG="zh_CN.UTF-8"
# 可以配合svnlook命令更新指定目录
svn update $WEBPATH --username=user1 --password=password1 --no-auth-cache
保存后需要修改post-commit文件权限为755,否则SVN无法调用执行
chmod 755 post-commit
例子,放/home/svndata/hooks目录下:
#!/bin/sh
export LANG="zh_CN.UTF-8"
/usr/local/svn/bin/svn update /home/web/xxx.com --username=myname --password=123456--no-auth-cache
/usr/local/svn/bin/svn update /home/web/yyy.com --username=myname --password=123456--no-auth-cache