linux(centos)搭建SVN服务器
安装步骤如下:
1、yum install subversion
2、输入rpm -ql subversion查看安装位置,如下图:
我们知道svn在bin目录下生成了几个二进制文件。
输入svn --help可以查看svn的使用方法,如下图。
3、创建svn版本库目录
mkdir -p /home/svn/svnrepos
4、创建版本库
svnadmin create /home/svn/svnrepos
执行了这个命令之后会在/home/svn/svnrepos目录下生成如下这些文件
5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
9、启动svn版本库
svnserve -d -r /var/svn/svnrepos
10、在windows上测试
新建一个测试文件夹,在该文件夹下右键选择SVN checkout如下图(要事先安装TortoiseSVN):
Linux下SVN服务器自动更新文件到Web目录说明:
服务器操作系统:CentOS
SVN安装路径:/usr/bin
SVN项目路径:/home/svn/super
SVN登录账号:yangbin
SVN登录密码:yangbin
Web站点根目录:/home/wwwroot/default/super
whoami #执行此程序的用户
REPOS="$1" #svn项目绝对路径值
REV="$2" #最新版本号
--no-auth-cache #不保存账户认证信息
实现目的:
当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录
具体操作:
使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录cd /home/svn/super/hooks
vi post-commit
#编辑,添加以下代码
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
SVN_PATH=/usr/bin
WEB_PATH=/home/wwwroot/default/super
SVN_USER=yangbin
SVN_PASS=yangbin
LOG_PATH=/tmp/svn_super.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
:wq!
#保存退出
chmod +x /home/svn/hooks/post-commit #添加脚本执行权限