一、环境
centos7
二、安装svnhtml
yum install subversion
查看版本nginx
svnserve --version
三、建立版本库
先建目录centos
mkdir /var/svn
建立版本库svn
cd /var/svn svnadmin create /var/svn/svnrepos cd svnrepos
会看到自动生成的版本库文件:post
subversion目录说明:
db目录:就是全部版本控制的数据存放文件。
hooks目录:放置hook脚本文件的目录。
locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)。
进入conf目录(该svn版本库配置文件)cd conf/
authz文件是权限控制文件
passwd是账号密码文件
svnserve.conf SVN服务配置文件
设置账号密码centos7
vi passwd
在[users]块中添加用户和密码,格式:账号=密码,例如:dennis=0454spa
设置权限版本控制
vi authz
在末尾添加以下代码:code
[/] dennis=rw
(r:读,w:写)orm
修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读 auth-access = write #受权用户可写 password-db = passwd #使用哪一个文件做为帐号文件 authz-db = authz #使用哪一个文件做为权限文件 realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
启动svn版本库
svnserve -d -r /var/svn/svnrepos
中止SVN命令
killall svnserve 用ps -ef | grep svn 查看服务是否开启
重点来了
如今个人nginx运行文件(/usr/local/nginx/html)和svn(/usr/bin/svn)的运行文件不在一块儿,因此要写一个钩子把他们连接起来。在svn所在的hooks文件夹下新建一个 post-commit 文件,而后将文件里写入:
#!/bin/sh export LANG=en_US.UTF-8 SVN=/usr/bin/svn WEB=/usr/local/nginx/html $SVN update $WEB --username dennis --password 0454
写好后执行:
chmod 777 /var/svn/svnrepos/hooks/post-commit
关闭svnserve:
killall svnserve
启动svnserve:
svnserve -d -r /var/svn/svnrepos
接下来在nginx坐在的运行文件里(/usr/local/nginx/html)执行
svn checkout svn://IP/ svn update