1、环境
centos7
2、安装svn
yum install subversion
查看版本
svnserve --version
3、创建版本库
先建目录
mkdir /var/svn
创建版本库
cd /var/svn
svnadmin create /var/svn/svnrepos
cd svnrepos
会看到自动生成的版本库文件:
subversion目录说明:
db目录:就是所有版本控制的数据存放文件。
hooks目录:放置hook脚本文件的目录。
locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。
进入conf目录(该svn版本库配置文件)cd conf/
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,例如:dennis=0454
设置权限
vi authz
在末尾添加如下代码:
[/]
dennis=rw
(r:读,w:写)
修改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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。