1、创建库

1.1 启动后的主界面

svn 仓库搭建_版本库

1.2 创建

右键Repositories,点击“Create New Repository…”,或者“新建”–> “Repository…”

svn 仓库搭建_svn 仓库搭建_02


svn 仓库搭建_右键_03

1.3 选择存储类型

选择默认的“FSFS”,即本地存储

svn 仓库搭建_用户名_04

扩展:
SVN存储版本数据有几种方式:BDB(一种事务安全型表类型)、FSFS(一种不需要数据库的存储系统),VDFS(分布式文件系统)。
(1)BDB 伯克利DB(Berkeley DB),版本库可以使用的一种经过充分测试的后台数据库实现,不能再通过网络共享的文件系统上使用,伯克利DB是Subversion1.2版本以前的缺省版本库格式。
(2)FSFS一个专用于Subversion版本库的文件系统后端,可以使用网络文件系统(例如:NFS或SMBFS)。是1.2版本及以后的缺省版本库格式。
(3)VDFS(VisualSVN分布式文件系统),是专有的数据存储后端,可实现跨不同服务器的透明数据复制。由于Subversion的模块化设计,分布式VDFS存储库在功能上等同于常规的Subversion FSFS存储库。最终用户可以使用主和从属VDFS存储库执行所有可能的Subversion操作 - 检查和更新工作副本,提交更改,修改版本属性,锁定和解锁文件等。
FSFS与VDFS的使用区别在于FSFS是本地仓库,VDFS是分布式仓库,实现在同一个局域网内多台仓库进行同步;因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

1.4 设置库名称

例如:“src”

svn 仓库搭建_右键_05

1.5 设置目录结构

默认是创建空目录,也可以选择“Single-project”简单工程结构。

svn 仓库搭建_SVN_06

1.6 初始化权限

权限设置有三种

Nobody has access<无人能访问>、

All Subversion users have Read/Write access<所有人可以读写>、

Customize permissions<自定义访问>)

因为是初始化仓库,所以先设置为没人能访问“Nobody has access”

svn 仓库搭建_用户名_07

1.7 创建成功

svn 仓库搭建_版本库_08

2、创建用户

2.1 进入创建界面

右键“Users”“Create User”或者“新建”“User”

svn 仓库搭建_版本库_09

svn 仓库搭建_用户名_10

2.2 创建用户名、密码

注意:用户名和密码区分大小

svn 仓库搭建_svn 仓库搭建_11

3、创建组

3.1 进入创建组界面

右键“Groups”“Create Group”或者“新建”“Group…”

svn 仓库搭建_右键_12

3.2 添加组成员

创建新组的窗口,设置组名,添加组成员

svn 仓库搭建_右键_13

可以添加已存在的组,也可以按照用户名添加

svn 仓库搭建_版本库_14

4、设置库的用户权限

4.1 进入

在新建的库根目录上右键,点击“Properties…”

svn 仓库搭建_用户名_15

4.2 设置权限

点击“Add…”,选择组或用户,添加完成后,可以设置每个组或用户的权限

Inherit from parent:从父目录继承,顶层目录(即根目录)不能选择这个选项

No Access:禁止访问

Read Only:只读权限

Read/Write:读写权限

svn 仓库搭建_SVN_16


4.3 设置库下指定目录或文件的权限

可以设置库下指定目录或者单个文件的权限,默认权限是Inherit from parent:从父目录继承。

在指定目录或文件上,右键选择“Properties…”,设置方式同上

svn 仓库搭建_用户名_17

5、Hooks

svn 仓库搭建_svn 仓库搭建_18


SVN服务端hooks主要有以下9种:

(1)pre-lock:文件加锁前执行,不常用

(2)post-lock:文件加锁后执行,通常用来发送锁定事件通知,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.锁定路径的认证用户名

(3)per-unlock:文件解锁前执行,不常用

(4)post-unlock:文件解锁后执行,通常用来发送解锁事件通知,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.解锁路径的认证用户名

(5)start-commit:开始提交时执行,在pre-commit之前,通常用来确定用户是否有提交权限

(6)pre-commit:提交之前执行,在start-commit之后,通常用来对提交内容的检查,例如利用pre-commit做提交log的合规性检查,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.提交事务的名称

(7)post-commit:提交完成后执行,这应该是使用最广的hooks之一,通常用来在提交之后发送提交通知,甚至是利用它来做自动化的CI/CD等操作,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.提交创建的修订版本号

(8)pre-revprop-change:在修改revision属性之前执行,不常用

(9)post-revprop-change:在修改revision属性之后执行,不常用6、Delegation代理

参考文档:https://www.visualsvn.com/server/features/delegation/

存储库管理委托是 VisualSVN Server 的主要功能之一。借助此功能,可以将非管理用户作为存储库主管分配给特定存储库,并使用 VisualSVN 存储库配置器对其进行管理。

我的理解:Delegation就是协助VisualSVN Server管理指定库(不是所有的库)

svn 仓库搭建_右键_19

7、Details

可以在Details中查看详细信息

svn 仓库搭建_版本库_20

8、备份

右键库,点击“Backup Repository…”进入备份界面

svn 仓库搭建_svn 仓库搭建_21


选择备份的目录,点击“Backup”后开始备份。

svn 仓库搭建_svn 仓库搭建_22