1、使用yum安装subservice
当出现此页面时表示已经安装成功~
2、创建以及配置svn版本库
a、首先创建版本库【所有仓库的根目录】
mkdir -p /home/svnroot/svndata/ //-p表示自动创建父文件夹
b、然后创建子仓库【此处可以创建多个子仓库】
svnadmin create /home/svnroot/svndata/doit/
svnadmin create /home/svnroot/svndata/im/
......
c、启动svn服务,在客户端即可checkout~
svnserve -d -r /home/svnroot/svndata/
注意:如果你创建了子仓库,想要所有的仓库都能被使用,就必须要在svnserve 命令后面接父仓库的目录,否则只能操作其中的一个仓库,并且浏览的链接要写成相应的子目录地址,比如:
svn://你的IP/doit
svn://你的IP/im
如果不带子仓库名,会报错
d、配置svnserve.conf
使用vi命令,vi /home/svnroot/svndata/doit/conf/svnserve.conf
在文件末尾添加如下代码
<span style="white-space:pre"> </span>anon-access = none<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>auth-access = write
<span style="white-space:pre"> </span>password-db = passwd
<span style="white-space:pre"> </span>authz-db = authz
保存退出~
e、编辑authz配置用户权限
同样使用vi命令,vi /home/svnroot/svndata/doit/conf/authz
然后添加如下代码:
[/]
xxx = rw
第一行表示对所有的仓库,第二行表示用户xxx有读写的权限
f、编辑passwd配置用户名密码
打开方法同上,然后添加如下代码
xxx = 123456
表示xxx用户,密码为123456
3、与web目录同步
a、首先使用checkout命令将web目录导入到子仓库
svn co svn://IP地址/doit /home/sources/doit
这样就可以在客户端使用checkout导出web代码了
b、使用钩子同步web目录
首先进入子仓库的hooks目录:cd /home/svnroot/svndata/doit/hooks
然后复制文件:cp post-commit.tmpl post-commit
再编辑:vi post-commit
首先注释掉最后一行代码:
#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
然后在文件末尾添加如下代码:
export LANG="zh_CN.UTF-8"
svn update /home/sources/doit --username 你的用户名--password 你的密码
第一行表示编码,第二行则是自动更新的代码,update /home/sources/doit此为你的web项目目录
然后保存退出,最后将该文件修改为可执行权限
chmod 777 post-commit
c、重启svnserve服务
首先杀掉svnserve服务:killall svnserve
然后重启服务:svnserve -d -r /home/svnroot/svndata
到此,结束svn的安装~