svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
测试环境:
CentOS 6.3 + subversion 1.6.11
SVN安装及配置:
直接使用yum安装subversion
yum install subversion
然后使用svnadmin命令来创建项目目录
svnadmin create /var/www/project
执行完创建项目命令后会自动生成下面几个文件目录
*dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
*db目录:就是所有版本控制的数据存放文件
*hooks目录:放置hook脚本文件的目录
*locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
*format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
*conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
我们进入到conf目录
#vim svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /var/www/project/conf/passwd
authz-db = /vsr/www/project/conf/authz
realm = project
#####################################################
#vim passwd
[users]
dick = dick
laobi = laobi
#用户名 密码
######################################################
#vim authz
[groups]
group1 = dick
group2 = laobi
[project:/]
dick = rw #赋予dick读写权限
@group1 = rw #赋予组 group1 读写权限
[project:/laobi] #设置 根目录下的laobi文件夹权限限制
laobi = rw
@group2 = rw
* = # 禁止其他无权用户操作,必须加上,否则无法限制其他用户操作
group1 和 group2 为组别
[project:/] 为项目根目录
开启和关闭SVN服务器
svnserve -d -r /var/www
#ps 查询进程
[root@localhost conf]# ps -ef | grep svn
root 2146 1 0 08:12 ? 00:00:00 svnserve -d -r /var/www
root 2210 1910 0 08:34 pts/0 00:00:00 grep svn
服务器上SVN几次基本操作
从仓库中拉取文件
svn co svn://192.168.2.136/project
添加文件
svn add test.txt
上传文件
svn commit test.txt