目录

一、安装Subversion. 2

1.1、校验当前系统是否安装subversion. 2

1.2、安装subversion. 2

二、Subversion创建版本资源库... 3

2.1、新建版本库目录... 3

2.2、使用svn的命令在版本库目录中创建版本资源库... 3

三、Subversion的配置... 4

4.1、配置svnserve.conf 4

4.2、配置passwd文件... 5

4.3、配置authz文件... 6

四、 Subversion启动服务... 6

3.1、方式一,单库启动... 7

3.2、方式二,多库启动... 7

 

一、安装Subversion

1.1、校验当前系统是否安装subversion

# svn --version

如下图表示未安装:

 

SVN能创建多个仓库吗 svn 建立仓库_SVN能创建多个仓库吗

1.2、安装subversion

# apt-get install subversion -y

或者

# apt install subversion -y

如下图开始安装:

SVN能创建多个仓库吗 svn 建立仓库_svn_02

再次查看svn的版本显示出版本号及其信息,表示安装成功

# svn --version

SVN能创建多个仓库吗 svn 建立仓库_SVN能创建多个仓库吗_03

二、Subversion创建版本资源库

2.1、新建版本库目录

# mkdir /opt/svn

SVN能创建多个仓库吗 svn 建立仓库_配置文件_04

2.2、使用svn的命令在版本库目录中创建版本资源库

# svnadmin create /opt/svn/repository            //创建一个名为repository的版本库

SVN能创建多个仓库吗 svn 建立仓库_版本库_05

创建完成以后,版本库中会生成相应的文件目录

进入当前创建的repository版本库

# cd /opt/svn/             //进入指定目录
# ll          //查看当前文件目录信息

SVN能创建多个仓库吗 svn 建立仓库_svn_06

版本库的目录结构:

# tree

SVN能创建多个仓库吗 svn 建立仓库_版本库_07

其中:

repository:当前版本库

conf:存放版本库所用配置文件的目录

db:版本数据存储目录

revprops:记录版本属性

revs:版本库数据存储真实目录

hooks:存放版本库勾子目录

locks:存储库锁目录,用来跟踪库的访问者

三、Subversion的配置

在版本库的目录下的conf目录中主要存放当前版本库的配资文件

# tree conf/

SVN能创建多个仓库吗 svn 建立仓库_svn_08

svnserver.conf:subversion的配置文件

passwd:subversion账户密码配置文件

authz:subversion账户权限配置文件

hooks-env.tmpl:钩子函数的临时文件

4.1、配置svnserve.conf

svnserve.conf主要配置subversion整体权限和读取的对应文件
 

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

anon-access控制非鉴权用户访问版本库的权限,取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 默认值:read

auth-access控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 默认值:write

password-db指定账户密码配置文件名,通过该文件可以实现鉴权访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 默认值:passwd

authz-db指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 默认值:authz

realm指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)

SVN能创建多个仓库吗 svn 建立仓库_版本库_09

4.2、配置passwd文件

该文件仅由一个[users]配置段组成,配置行格式如下:

<用户名> = <密码>

例如:配置多个用户和对应的密码:

[users]

admin = admin

aaron = 123456

SVN能创建多个仓库吗 svn 建立仓库_svn_10

后期添加账户的时候,直接在下一行追加即可

4.3、配置authz文件

该配置文件由一个[groups]配置段和若干个版本库路径权限段组成。

[groups]配置段中配置行格式如下:

<用户组> = <用户列表>

版本库路径权限段的段名格式如下:

[<版本库名>:<路径>]

在编辑authz文件时,可以先将用户进行分组,再设置当前分组权限

注意:分组中的账户必须在passwd中存在,多个用户分为一个组时,只需要用逗号隔开

例如:

system = admin,aaron


[repository:/]

@system = rw

* =

SVN能创建多个仓库吗 svn 建立仓库_版本库_11

其中:[repository:/]表示当前仓库的根目录,@system = rw表示分组system中的admin账户和aaron账户所拥有的权限是读写当前仓库先的更路经,* =表示非验证分组的账户没有任何权限

注意:后期添加目录权限时需要先到仓库中创建提交目录之后再配置该目录权限,如果是先在authz文件中配置了目录权限,再到仓库中创建该目录时,提交该仓库会报错:Access denied

四、 Subversion启动服务

命令格式:svnserve -d -r 目录 --listen-port 端口号

-r: 配置方式决定了版本库访问方式

--listen-port: 指定SVN监听端口,不加此参数,SVN默认监听3690

由于-r 配置方式的不一样,SVN启动就可以有两种不同的访问方式

 

3.1、方式一,单库启动

-r直接指定到版本库(称之为单库svnserve方式)

# svnserve -d -r /opt/svn/repository

指定启动一个版本库,在这种情况下,一个svnserve只能为一个版本库工作

authz配置文件中对版本库权限的配置应这样写:

[groups]

admin=user1

dev=user2

[/]

@admin=rw

user2=r

使用类似这样的URL:svn://192.168.0.1/即可访问repository版本库

 

3.2、方式二,多库启动

指定到版本库的上级目录(称之为多库svnserve方式)

# svnserve -d -r /opt/svn

指定版本库的上级目录,这种情况,一个svnserve可以为多个版本库工作

authz配置文件中对版本库权限的配置应这样写:

[groups]

admin=user1

dev=user2

[repository:/]

@admin=rw

user2=r

#

[repository01:/]

@admin=rw

user2=r

如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录

使用类似这样的URL:svn://192.168.0.1/repository即可访问repository版本库

注意:该中启动方式的访问URL中需要添加需要访问的仓库