建立svn并自动到发布到web目录【存档】

编译安装svnserver
./configure –prefix=/data/app/svn –without-berkeley-db
make & make install
建立svnserver的配置目录
mkdir /data/app/svn/conf
手工建立三个配置文件:
svnserve.conf svn服务器配置
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
authz 项目配置
[yjxj2012:/]
soft456 = rw
wp1998 = rw
zhong = rw
wuya = rw
[jfzd2012:/]
soft456 = rw
wp1998 = rw
zhong = rw
sizzflair = rw
passwd 用户密码
[users]
wp1998 = 111
soft456 = 111
wuya = 111
jade88 = 111
sizzflair = 111
zhong = 111
建立两个项目目录
/data/app/svn/bin/svnadmin create /data/svndata/jfzd2012
/data/app/svn/bin/svnadmin create /data/svndata/yjxj2012
启动svn server
/data/app/svn/bin/svnserve -r /data/svndata –config-file /data/app/svn/conf/svnserve.conf –log-file /data/app/svn/svnserve.log -d
—————————————————–
下面是svn自动发布到web目录,比如对项目jfzd2012,其相应的web发布目录是/data/webapp/jfzd;
这个svn项目的目录(/data/svndata/jfzd2012)在建立项目后里面有一个hooks目录(钩子文件夹),里面默认有一些动作模板。如:
post-commit 表示commit之后的动作
pre-commit 表示commit之前的动作
新建post-commit文件:

#!/bin/sh
REPOS=$1
REV=$2
time=`date "+%Y-%m-%d %H:%M:%S"`
export LANG=zh_CN.UTF-8
# 当用户提交的时候注释里包含aotu_deploy字符串的时候才发布到web目录
if (/data/app/svn/bin/svnlook log -r $REV /data/svndata/jfzd2012/ | grep "auto_deploy")
then
echo "start deploy $time" >> /tmp/svn_autocommit.log
/data/app/svn/bin/svn export --username wp1998 --password 111 "svn://192.168.0.8/jfzd2012/jfzd"
/data/webapp/jfzd --force --no-auth-cache
fi

增加执行权限即可:
chmod +x post-commit

发表评论