一、 安装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. 测试是否成功: