🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[info]###CentOS6.5 搭建SVN服务器<b/> 作者 : fankey <6424051@qq.com> 时间 : 2016-01-20 <br/> ###`1. 检测系统是否安装了svn : ` 检测命令 : `rpm -qa subversion` ![](https://box.kancloud.cn/2016-01-22_56a2006f23fb3.png) `如果已经安装了svn,需要卸载可用命令 : yum remove subversion` <br/> ###`2.安装svn : ` 安装命令 : ` yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql` ![](https://box.kancloud.cn/2016-01-22_56a20079b4fd0.png) `安装结束后可以使用命令 : svnserve --version 查看当前svn版本` ###`3.创建一个版本库 : ` 创建命令 : `svnadmin create /home/svn/project1` <font color='red'>备注:project1 是版本库目录</font> ![](https://box.kancloud.cn/2016-01-22_56a20079cb5c6.png) ###`4.配置版本库文件 : ` 配置目录conf 有如下文件 ![](https://box.kancloud.cn/2016-01-22_56a20079df0d4.png) ###`5.配置 passwd : 新增用户以及相关用户密码` ![](https://box.kancloud.cn/2016-01-22_56a20079f33bc.png) ###`6.配置 authz 权限` ![](https://box.kancloud.cn/2016-01-22_56a2007a4aa5e.png) ###`7.配置 svnserve.conf` ![](https://box.kancloud.cn/2016-01-22_56a2007a5bc0b.png) <span style='color:red'>(注意,password-db=passwd、authz-db=authz一定要取消前面的注释,不然会报错“无权限访问该项目”) </span> ###`8.启动svn : ` 启动svn命令 : `svnserve -d -r /home/svn/` ###`9.关闭svn :` ![](https://box.kancloud.cn/2016-01-22_56a2007a6fa9f.png) 查询svnserve所在进程ID : `ps aux | grep svn` 执行关闭 : `kill 进程id` ###`10.检出svn命令:` `svn co svn://127.0.0.1/fankey --username fankey --password 123456` ![](https://box.kancloud.cn/2016-01-30_56ac281822b19.png) <font color='red'>备注:如果输错了密码,或者用户更改了密码处理方法:</font> 1、进入记录svn密码文件的目录 `cd ~/.subversion/auth/svn.simple/` 2、使用cat命令查看 相关文件里面的内容 ![](https://box.kancloud.cn/2016-01-30_56ac28184208d.png) 找到相应的文件删除文件即可 <br/> #svn自动提交带代码 <font color='red'>找到相应svn项目下的hooks目录:创建 post-commit 文件(该文件必须有+x权限,否则发生255错误)</font> 代码如下: `#!/bin/sh #######获取SVN提交的项目 REPOS="$1" #######获取提交的当前版本号 REV="$2" #######导入中文字体 export LANG=zh_CN.GBK #######获取提交时填写的备注信息 BAKTEXT=$(svnlook log $REPOS -r $REV) #######echo "REPOS = ${REPOS} ; REV = ${REV} ; text = ${BAKTEXT}" >> home/svn/test/log/svn_hook_log.txt #######判断备注是否为 'update' , 如果是update则执行同步更新 if [ "$BAKTEXT" = "update" ]; then #自动跟新代码到/home/wwwroot/test 目录下面 /usr/bin/svn update /home/wwwroot/test --username reader --password 123456987 #echo "you input bak is update;" >> /home/svn/test/log/svn_hook_log.txt fi` ![](https://box.kancloud.cn/2016-01-31_56ad698a0219f.png) <br/> <br/> ###Demo比较复杂的权限控制示例: ![](https://box.kancloud.cn/e492569fe450865a3b669b6da191ef6c_481x341.png)