Subversion(SVN) 是一个开源的版本控制系统, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
1.Subversion的安装
安装:yum install subversion
版本校验:svnserve --version
2.建立版本库目录
mkdir /opt/svndata
3.创建版本库
svnadmin create /opt/svndata
[root@beasin ~]# ls /opt/svndata/
conf db format hooks locks README.txt
注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
4.配置版本库
进入版本库目录下的conf文件夹,该文件夹下有三个文件:
svnserve.conf:svn服务配置文件
passwd:用户名口令文件
authz:权限配置文件
配置svn服务文件svnserve.conf
[general]
# 使非授权用户无法访问
anon-access = none
# 使授权用户有写权限
auth-access = write
# 指明密码文件路径
password-db = passwd
# 访问控制文件
authz-db = authz
# 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
realm = /opt/svndata/
其它采用默认配置,各语句都必须顶格写,左侧不能留空格,配置行不允许有注释,否则会出错。配置svn密码文件passwd
[users]
#account = password
zhou = 123
game = 123
test =123
此为用户名密码对。配置权限文件authz
# [groups]组配置格式
# group = acount1,acount2
# [根目录名:/子目录名]版本库路径配置
# 权限配置格式
# 用户权限
# * = r
# acount =wr
# 组权限配置
# @group = wr
#未配置的代表无权限
#组配置
[groups]
deve = zhou,test
#版本库跟路径权限配置
[/]
test =r
@deve = wr
#跟路径中proj路径权限配置
[/proj/]
game = r
@deve = wr
注意,此处的proj目录为svn客户端在版本库中建立的目录,并且commit的,服务器端是没有实际的该目录,因为svn目录和系统目录不同,服务端有自己管理目录的数据格式,不能手动在服务端建立,对于[/proj/]和[proj:/]是一样的。
5.启动svn服务
[root@beasin ~]# svnserve -d -r /opt/svndata/
指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它
端口。-r选项用来指定svn服务的根目录,这样用户配置中就可以使用相对路径访问,而不用提供完整路径。
6.检查端口
[root@beasin ~]# netstat -ntlp|grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15087/svnserve
注意在防火墙配置/etc/sysconfig/network/iptables中放行端口
7.其他指令
从服务端下载代码:svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code
提交更改:svn commit -m "修改了main.m文件"
更新代码:svn update
其他指令帮助:svn help