首页 > 代码库 > centos svn

centos svn

安装说明

系统环境:CentOS-6.3
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件

检查已安装版本

#检查是否安装了低版本的SVN
[root@localhost /]# rpm -qa subversion

#卸载旧版本SVN
[root@localhost modules]# yum remove subversion

安装SVN

[root@localhost modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

确认已安装了svn模块

[root@localhost /]# cd /etc/httpd/modules
[root@localhost modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

验证安装

检验已经安装的SVN版本信息
[root@localhost 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

centos svn