本教程介绍如何通过svnserve访问模式来部署SVN。
前提条件
- 已注册阿里云账号。如还未注册,请先完成账号注册。
- 已创建实例规格为ecs.g6.large的CentOS操作系统实例,具体操作请参见创建方式导航。
- 已在实例安全组的入方向添加规则并放行SVN服务的默认端口3690,具体操作请参见添加安全组规则。
背景信息
本教程手动部署SVN的示例步骤中使用了以下版本软件。操作时,请您以实际软件版本为准。
- 操作系统:公共镜像CentOS 7.2 64位
- SVN:1.7.14
步骤二:配置SVN
- 运行以下命令创建版本库根目录。
- 依次运行以下命令创建版本库。
cd /var/svn
svnadmin create /var/svn/svnrepos
- 依次运行以下命令查看自动生成的版本库文件。
cd svnrepos
ls

Subversion目录说明如下表:
目录 |
说明 |
db |
存放所有的版本控制数据文件。 |
hooks |
放置hook脚本文件。 |
locks |
用来追踪存取文件库的客户端。 |
format |
一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。 |
conf |
SVN版本库的配置文件(版本库的访问账号、权限等)。 |
- 设置SVN版本库的账号和密码。
- 运行
cd conf/
命令。
- 运行
vi passwd
命令,打开用户配置文件。
- 按
i
键进入编辑模式。
- 移动光标至
[users]
下,添加用户账号和密码。
说明 添加账号和密码的格式为:账号 = 密码。例如,userTest(账号) = passWDTest(密码),如下图所示(注意等号两端要有一个空格)。

- 按
Esc
键退出编辑模式,并输入:wq
保存并退出。
- 设置账号的读写权限。
- 运行
vi authz
命令,打开权限控制文件。
- 按
i
键进入编辑模式。
- 移动光标至文件末尾,并添加如下代码(其中,userTest表示账号,r表示读权限,w表示写权限):
[/]
userTest=rw

- 按
Esc
键退出编辑模式,并输入:wq
保存并退出。
- 修改SVN服务配置。
- 运行
vi svnserve.conf
打开SVN服务配置文件。
- 按
i
键进入编辑模式。
- 移动光标找到如下配置行,删除行前面的注释符#和空格:
说明 每行不能以空格开始,且等号两端要有一个空格。
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录

- 按
Esc
键退出编辑模式,并输入:wq
保存并退出。
- 运行以下命令启动SVN版本库。
本文示例中,启动命令直接指定到版本库。
svnserve -d -r /var/svn/svnrepos/
说明 运行killall svnserve
命令可停止SVN服务。
- 运行命令
ps -ef |grep svn
查看SVN服务是否开启。
如果返回结果如下图所示,表示SVN服务已经开启。

步骤三:使用Windows客户端测试
- 在本地下载并安装TortoiseSVN客户端。
- 在本地项目文件夹内的空白区域单击鼠标右键。
本示例中,项目文件夹为C:\Test。
- 在弹出菜单中,选择SVN检出。
- 填写如下信息后,单击确定。
- 指定版本库URL,本文示例中直接指定到版本库启动的SVN,svnserve只为
svnrepos
这一个版本库工作,因此版本库URL格式为svn://实例公网IP地址/。
说明 当在版本库的上层目录启动SVN服务时,SVN检出的URL要对应加上版本库的名称。
- 指定检出至目录。本文示例中,目录为C:\Test。

说明 第一次登录需要输入账号和密码,即您在passwd文件中设置的用户名和密码。
检出完成示例如下。
