一、 安装subversion
1. 首先查看SVN是否已经安装过
rpm -qa | grep subversion
如果输出类似如下结果,则说明已经安装:subversion-1.6.11-7.el6.x86_64
2. 通过yum安装SVN
yum -y install subversion
3. 查看安装的SVN版本
svn --version
二、 建立代码仓库
第一步得创建所有项目的仓库中心,如下命令:
mkdir /opt/svn/
现在假定我们有一个项目叫 imobile ,现在我们为这个项目在仓库中心中分配一个仓库。如下命令:
svnadmin create /opt/svn/imobile/
进入imobile目录如下 /opt/svn/imobile/
目录说明 | |
conf: | 配置文件 |
db: | 存储数据 |
hooks: | 脚本程序,SVN提交上来的文件检验等操作 |
三、 修改配置文件
1. 进入 svntest 项目仓库配置目录中
cd /opt/svn/imobile/conf/
2. 修改svnserve.conf文件
vim svnserve.conf
找到以下的内容,并在行首注释符号#删掉。
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz
注,配置文件前不能出现空格,否则会出现错误
3. 为 svntest 项目增加svn用户,并且赋予权限值:
vim authz
在文件中添加如下代码:
[imobile:/] imobile_001=rw
rw表示读写操作权限
关于方框号里面的写法有以下几种:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svn,
[/]就是表示对全部版本库设置权限。
[imobile:/] 表示对版本库svntest设置权限
[imobile:/abc] 表示对版本库svntest中的abc项目设置权限
[imobile:/abc/aaa] 表示对版本库svntest中的abc项目的aaa目录设置权限
4. 给用户分配密码,执行如下命令:
vim passwd [users] # harry=harryssecret # sarry=sarryssecret imobile_001=123456
四、启动svn服务和测试
1. 启动svn服务,并指定 svn 的根目录:
svnserve -d -r /opt/svn/
2. 查看svn服务是否正常启动,执行如下命令:
netstat -tunlp | grep svn
顺便提一下,svn的默认端口是3690。
3. 重启SVN服务:
ps -ef|grep svn #查看进程,找到svn进程 kill -9 进程id #杀死主进程 svnserve -d -r /opt/svn/ #启动svn,-d表示svn作为服务程序在后台运行,-r是表示将SVN目录当做根目录
4. 在windows系统上测试是否成功:
5. 开机自启动SVN:
vim /etc/rc.local #加入下面这段命令 svnserve -d -r /opt/svn/
五、 SVN提交文件自动更新到nginx的WEB目录
1. 进入WEB根目录:
cd /web/www
2. 创建SVN仓库副本:
svn co svn://localhost/imobile --username imobile_001 --password 123456
3. 设置svn更新后自动更新nginx的读取目录:
cd /opt/svn/imobile/hooks/ vim post-commit #!/bin/sh export LC_CTYPE=zh_CN.UTF-8 /usr/bin/svn up /web/www/imobile --username 'imobile_001' --password '123456'
更改文件权限为可执行
chmod 777 post-commit
4. 测试是否成功:
本文参考网址:https://blog.csdn.net/ai_zxc/article/details/50787754