您所在地位置:首页> / 应用软件 / SVN / >正文

LINUX中SVN同步代码到web目录脚本配置

2014-01-18 07:37:39 分类:SVN 阅读(1646) 加入收藏

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


上一篇:LINUX关闭防火墙

下一篇: linux下nginx+php+mysql环境搭建