您的位置:首页 > 运维架构 > Linux

CentOS 搭建SVN服务器

2016-10-26 21:08 211 查看

1. 检测系统是否安装了svn
:

检测命令 :
rpm -qa subversion




如果已经安装了svn,需要卸载可用命令 : yum remove subversion


2.安装svn :

安装命令 :
yum install httpd httpd-devel
subversion mod_dav_svn mod_auth_mysql




安装结束后可以使用命令 : svnserve --version 查看当前svn版本

3.创建一个版本库 :

创建命令 :
svnadmin create /home/svn/project1

备注:project1 是版本库目录



4.配置版本库文件 :

配置目录conf 有如下文件



5.配置 passwd
: 新增用户以及相关用户密码



6.配置 authz
权限



7.配置
svnserve.conf



8.启动svn :

启动svn命令 :
svnserve -d -r /home/svn/

9.关闭svn :


查询svnserve所在进程ID
:
ps aux | grep svn
执行关闭 :
kill
进程id

10.检出svn命令:

svn co svn://127.0.0.1/fankey --username
fankey --password 123456




备注:如果输错了密码,或者用户更改了密码处理方法:
1、进入记录svn密码文件的目录

cd ~/.subversion/auth/svn.simple/

2、使用cat命令查看 相关文件里面的内容



找到相应的文件删除文件即可

svn自动提交带代码

找到相应svn项目下的hooks目录:创建 post-commit 文件(该文件必须有+x权限,否则发生255错误) 代码如下:

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: