首页 > 代码库 > SVN同步版本库与网站目录

SVN同步版本库与网站目录

如何创建SVN版本库及同步文件到WEB目录

:空谷

一 安装与配置SVN

1.安装subversion

centos: yum install subversionubuntu: apt-get install subversion

 

2.建立版本库,本例中我们的版本库建立在/var/svn,假设该版本库目录为:foo

cd /varmkdir svnsvnadmin create foo

 

3.配置版本库

刚才建立的版本库,需要配置认证方式,用户名和密码,权限配置这三个文件,分别对应/var/svn/foo/conf下的

svnserve.conf,passwd和authz这三个文件。

svnserve.conf(去掉注释)anon-access = noneauth-access = writepassword-db = passwdauthz-db = authz.conf

 

realm = 填写登录时提示的认证域名称

passwd文件添加相应用户名和密码:

user1 = password1user2 = password2

 

如果要使用通用的用户名密码和权限认证,指定password-db和authz-db路径到相应passwd和authz.conf文件位置即可

authz文件添加相应用户名到组并分配库权限:

[groups]foo_user = user1,user2 (多个用户以逗号分隔)[/]@foo_user = rw* =

 

其中*=意味着匿名用户没有权限,引用组名时要加上@符号

4.启动和使用

配置成功以后,启动svn版本库服务

svnserve -d -r /var/svn

 

获取版本库:

svn co svn://ip地址/foo

服务器上可以直接使用 svn co file:///var/svn/foo

二、同步到WEB目录

1.创建web目录(已有目录则略过)

cd /varmkdir wwwchmod 777 www

 

2.检出副本到/var/www

svn co file:///var/svn/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

 

编辑该文件

#!/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

 

SVN同步版本库与网站目录