安装说明
系统环境:CentOS-6.3
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件
检查已安装版本
#检查是否安装了低版本的SVN
[[email protected] /]# rpm -qa subversion
#卸载旧版本SVN
[[email protected] modules]# yum remove subversion
安装SVN
[[email protected] modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
确认已安装了svn模块
[[email protected] /]# cd /etc/httpd/modules
[[email protected] modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
验证安装
检验已经安装的SVN版本信息
[[email protected] modules]# svnserve --version
svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 2012,00:44:03
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
代码库创建
一 需求
开发服务器搭建好SVN服务器,不可能只管理一个工程项目,如何做到不在一个项目中的开发人员不能访问其它项目中的代码,做好技术保密工作。
代码仓库有三个仓库:project1,project2,project3
假设人员有6个人:eg1,eg2,eg3,eg4,eg5,eg6
eg1,eg2,只能访问project1;
eg3,eg4,只能访问project2;
eg5,eg6,只能访问project3;
二 实现
在你的仓库路径下:假如是/home/sv
cd /home/svn
//创建三个代码仓库
svnadmin create project1
svnadmin create project2
svnadmin create project3
//把两个权限配置文件复制到SVN
//根路径下,统一管理所有代码仓库
cd/projcet1/conf
cp authz passwd /home/svn
//打开配置文件
vi svnserve.conf
修改成如下:
anon-access = none
//禁止匿名访问
auth-access = write
password-db = /home/svn/passwd
//统一使用密码文件
authz-db = /home/svn/authz
realm = project1
//权限域名,很重要,写你的工程名
分别修改project2的svnserve.conf
和上面一样,最后一行分别写
anon-access = none
//禁止匿名访问
auth-access = write
password-db = /home/svn/passwd
//统一使用密码文件
authz-db = /home/svn/authz
realm = project2
//权限域名,很重要,写你的工程名
分别修改project3的svnserve.conf
和上面一样,最后一行分别写
anon-access = none
//禁止匿名访问
auth-access = write
password-db = /home/svn/passwd
//统一使用密码文件
authz-db = /home/svn/authz
realm = project3
//权限域名,很重要,写你的工程名
修改两个权限管理文件:
passwd
//用户名 = 密码
[users]
eg1 =
123
eg2 =
123
eg3 =
123
eg4 =
123
eg5 =
123
eg6 =
123
authz
[groups]
//分组
admin = eg1,eg2
guest = eg3,eg4
guset1 = eg5,eg6
[/]
//管理者拥有所有读写权限
* =
@admin = rw
[project1:/]
//工程1的访问控制,guest1,2无法访问
@admin = rw
或
eg1 = rw
eg2 = rw
[project2:/]
@guest = rw
或
eg3 = rw
eg4 = rw
[project3:/]
@guest1 = rw
或
eg5 = rw
eg6 = rw
三 重启
1
svnserve -d -r /home/svn
停止命令
1
killall svnserve