linux SVN 建立版本库 同步文件到 WEB目录/工作目录
一 安装与配置SVN1.安装subversioncentos: yum install subversionubuntu: apt-get install subversion 2.建立版本库,本例中我们的版本库建立在/var/svn,假设该版本库目录为:foocd /varmkdir svnsvnadmin create foo
1.安装subversion
centos: yum install subversion
ubuntu: apt-get install subversion
2.建立版本库,本例中我们的版本库建立在/var/svn,假设该 版本库目录为:foo
cd /var
mkdir svn
svnadmin create foo
3.配置版本库
刚才建立的版本库,需要配置认证方式,用户名和密码,权限配置这三个文件,分别对应/var/svn/foo/conf下的
svnserve.conf
passwd
authz
这三个文件。
svnserve.conf(去掉注释)
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = 填写登录时提示的认证域名称
如果要使用通用的用户名密码和权限认证,指定password-db和authz-db路径到 相应passwd和authz文件位置即可
passwd文件添加相应用户名和密码:
user1 = password1
user2 = password2
authz文件添加相应用户名到组并分配库权限:
[groups]
foo_user = user1,user2 (多个用户以逗号分隔)
[/]
@foo_user = rw
* =
其中*=意味着匿名用户没有权限,引用组名时要加上@符号
4.启动和使用 版本库目录为:foo
配置成功以后,启动svn版本库服务
svnserve -d -r /var/svn
从代码库中拉下代码,即checkout 。简写:co
从代码库中拉下代码 : svn co svn://ip地址/ foo
服务器上获取版本库可以直接使用 svn co file:///var/svn/foo
二、同步到WEB目录(工作目录)
1.创建web目录:(已有目录则略过)
cd /var
mkdir www
chmod 777 www
2.检出副本到 web目录(工作目录): /var/www
svn co file:///var/svn/foo 版本库目录为:foo
3.在版本库上 增加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
编辑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
=============项目中实际用到的post-commit 文件============
==================add by zhaohao======================
cat post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
JAVA_HOME=/data/jdk1.7.0_67
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
SVN=/usr/bin/svn
WEB=/data/webapps/baihedai
export LANG=zh_CN.UTF-8
$SVN update $WEB --username XXX --password XXX
if [ "$REPOS" != "wallet.admin" -a "$REPOS" != "wallet.h5" ];
then
/data/apache-tomcat-7.0.55/bin/shutdown.sh
sleep 1
jps|grep Bootstrap|awk '{print $1}'|xargs kill -9
sleep 1
/data/apache-tomcat-7.0.55/bin/startup.sh
exit 0
fi
更多推荐
所有评论(0)