部署svnserve访问SVN
1. 创建实验资源
开始实验之前,您需要先创建ECS实例资源。
在实验室页面,单击创建资源。
(可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。
说明:资源创建过程需要1~3分钟。
2. 安装SVN
本步骤指导您如何在云服务器ECS实例上安装SVN。
执行如下命令,安装SVN。
yum install subversion -y
执行如下命令,查看SVN版本。
svnserve --version
返回结果如下,您可查看到SVN版本号为1.7.14。
3. 配置SVN
本步骤指导您如何配置SVN。
执行如下命令,创建版本库根目录。
mkdir /var/svn
依次执行如下命令,进入版本库根目录,创建版本库。
cd /var/svn svnadmin create /var/svn/svnrepos
执行如下命令,查看自动生成的版本库文件。
cd svnrepos ls
返回结果如下,您可查看到版本库文件。
Subversion目录说明如下表:
目录 |
说明 |
db |
存放所有的版本控制数据文件。 |
hooks |
放置hook脚本文件。 |
locks |
用来追踪存取文件库的客户端。 |
format |
一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。 |
conf |
SVN版本库的配置文件(版本库的访问账号、权限等)。 |
设置SVN版本库的账号和密码。
4.1 执行如下命令,进入conf目录。
cd conf/
4.2 执行如下命令,打开用户配置文件
vi passwd
4.3 按i键进入编辑模式。
4.4 移动光标至[users]下,添加用户账号和密码。例如添加的用户账户和密码为userTest = passWDTest。
说明:添加账号和密码的格式为:账号 = 密码。例如,userTest(账号) = passWDTest(密码),如下图所示(注意等号两端要有一个空格)。
4.5 按Esc键退出编辑模式,输入:wq并按回车保存并退出。
设置账号的读写权限。
5.1 执行如下命令,打开权限控制文件。
vi authz
5.2 按i键进入编辑模式。
5.3 移动光标至文件末尾,并添加如下代码(其中,userTest表示账号,r表示读权限,w表示写权限)。
[/] userTest=rw
5.4 按Esc键退出编辑模式,输入:wq并按回车保存并退出。
修改SVN服务配置。
6.1 执行如下命令,打开SVN服务配置文件。
vi svnserve.conf
6.2 按i键进入编辑模式。
6.3 移动光标找到如下配置行,删除行前面的注释符#和空格。
说明:每行不能以空格开始,且等号两端要有一个空格。
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = /var/svn/svnrepos #认证空间名,版本库所在目录
6.4 按Esc键退出编辑模式,输入:wq并按回车保存并退出。
执行如下命令,启动SVN版本库。
在本实验中,启动命令直接指定到版本库。
svnserve -d -r /var/svn/svnrepos/
说明:如果您想停止SVN服务,可执行killall svnserve命令。
执行如下命令,查看SVN服务是否开启。
ps -ef|grep svn
返回结果如下图所示,表示SVN服务已经开启。
4. 使用Windows客户端测试
本步骤指导您使用Windows客户端测试SVN。
在您的本机中下载并安装TortoiseSVN客户端。
在您的本机项目文件夹内的空白区域单击鼠标右键。 在本示例中,项目文件夹为C:\Test。
在弹出菜单中,选择SVN检出。
在检出对话框中, 填写如下信息后,单击确定
参数说明:
版本库URL:本实验中直接指定到版本库启动的SVN,svnserve只为svnrepos这一个版本库工作,因此版本库URL格式为svn://云服务器ECS弹性IP/。您可在云产品资源列表中查看云服务器的ECS弹性IP。
检出至目录:本实验中,目录为C:\Test。
返回结果如下,表示检出完成。
说明:第一次登录需要输入账号和密码,即您在passwd文件中设置的用户名和密码。本实验中账户为userTest,密码为passWDTest。
实验链接:https://developer.aliyun.com/adc/scenario/30a4400ce3944c6e8fc9a5fea06dc2ec








