Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
[root@localhost ~]# cat /etc/RedHat-release //查看CentOS版本如下
CentOS release 5.6 (Final)
[root@localhost ~]# yum -y install subversion //利用yum安装subversion软件
[root@localhost ~]# svnserve –version //查看subversion版本
svnserve, version 1.6.11 (r934486)
[root@localhost ~]# mkdir -p /data/svndata/ //创建svndata目录
[root@localhost ~]# svnadmin create /data/svndata/project/ //创建project库名称
[root@localhost ~]# ls /data/svndata/project/ //自动创建以下文件
conf db format hooks locks README.txt
[root@localhost conf]# cat authz //查看authz的设置
[aliases]
[groups]
admin = user1 //设置组admin
[/] //根目录权限设置(就是“svndata”这个文件夹)
user1 = rw //用户1权限是:可读写
user2 = r //用户2权限是:可读,不可写
@admin = rw //设置组权限
[svndata:/project] //设置svndata目录权限
user1 = rw
user2 = r
[root@localhost conf]# cat svnserve.conf //查看svnseve.conf配置文件
[general]
anon-access = none //控制非鉴权用户访问版本库的权限。
auth-access = write //控制鉴权用户访问版本库的权限
password-db =/data/svndata/project/conf/passwd //指定用户名口令文件名
authz-db =/data/svndata/project/conf/authz //指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制
realm = My First Repository //指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的
认证域相同,建议使用相同的用户名口令数据文件
[root@localhost conf]# cat passwd //查看passwd文件
[users]
user1 = user1 //用户名 密码的格式
user2 = user2
. .
. . //以此类推
[root@localhost ~]# svnserve -d -r /data/svndata/project/(默认3690)
启动svnserve时出现cannot bind server socket:address already in use
svnserve -d –listen-port 3691 -r /data/svndata/project
访问使用IE svn://ip或者TortoiseSVN客户端软件即可。