本教程介绍如何通过svnserve访问模式来部署SVN。

前提条件

使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

背景信息

本教程手动部署SVN的示例步骤中使用了以下版本软件。操作时,请您以实际软件版本为准。
  • 操作系统:公共镜像CentOS 7.2 64位
  • SVN:1.7.14
  • Apache:2.4.6

操作步骤

步骤一:安装SVN

您可以采用以下任一种方法安装SVN:
  • 使用镜像市场的SVN镜像
    1. 单击SVN版本控制镜像进入购买页。
    2. 单击立即购买
    3. 输入账号和密码,登录ECS控制台。
    4. 镜像配置项中已选择为SVN版本控制镜像。按页面提示,完成其他配置项并购买ECS实例。详情请参见使用向导创建实例
  • 手动安装SVN
    1. 远程连接Linux实例
    2. 运行以下命令安装SVN。
      yum install subversion
    3. 运行以下命令查看SVN版本。
      svnserve --version

      部署svnserve访问SVN_搭建和使用SVN_建站教程_云服务器 ECS 阿里云技术文档 第1张

步骤二:配置SVN

完成以下操作,配置SVN:

  1. 运行以下命令创建版本库根目录。
    mkdir /var/svn
  2. 依次运行以下命令创建版本库。
    # cd /var/svn
    # svnadmin create /var/svn/svnrepos
  3. 依次运行以下命令查看自动生成的版本库文件。
    # cd svnrepos
    # ls

    部署svnserve访问SVN_搭建和使用SVN_建站教程_云服务器 ECS 阿里云技术文档 第2张
    Subversion目录说明如下表:
    目录 说明
    db 存放所有的版本控制数据文件。
    hooks 放置hook脚本文件。
    locks 用来追踪存取文件库的客户端。
    format 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。
    conf SVN仓库的配置文件(仓库的访问账号、权限等)。
  4. 设置SVN仓库的账号和密码。
    1. 运行cd conf/命令。
    2. 运行vi passwd命令,打开用户配置文件。
    3. i键进入编辑模式。
    4. 移动光标至[users]块中,添加用户账号和密码。
      说明 添加账号和密码的格式为:账号=密码。例如,suzhan(账号) = redhat(密码),如下图所示(注意等号两端要有一个空格)。

      部署svnserve访问SVN_搭建和使用SVN_建站教程_云服务器 ECS 阿里云技术文档 第3张
    5. Esc键退出编辑模式,并输入:wq保存并退出。
  5. 设置账号的读写权限。
    1. 运行vi authz命令,打开权限控制文件。
    2. i键进入编辑模式。
    3. 移动光标至文件末尾,并添加如下代码(其中,suzhan表示账号,r表示读权限,w表示写权限):
      [/]
      suzhan=rw

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

      部署svnserve访问SVN_搭建和使用SVN_建站教程_云服务器 ECS 阿里云技术文档 第5张
    4. Esc键退出编辑模式,并输入:wq保存并退出。
  7. 运行以下命令启动SVN版本库。
    svnserve -d -r /var/svn/
  8. 运行命令ps -ef |grep svn查看SVN服务是否开启。
    如果返回结果如下图所示,表示SVN服务已经开启。
    部署svnserve访问SVN_搭建和使用SVN_建站教程_云服务器 ECS 阿里云技术文档 第6张
    说明 运行killall svnserve命令可停止SVN服务。

步骤三:配置安全组规则

SVN服务的默认端口为TCP 3690。您需要登录ECS管理控制台,放行TCP 3690端口。具体操作,请参见添加安全组规则

步骤四:使用Windows客户端测试

完成以下操作,使用Windows客户端测试:

  1. 在本机下载并安装TortoiseSVN客户端
  2. 右键单击本地项目文件夹。本示例中,项目文件夹为C:\KDR
  3. 在弹出菜单中,选择SVN检出
  4. 填写如下信息后,单击确定
    • 指定版本库URL,格式为svn://实例公网IP地址/SVN仓库名。本示例中,SVN仓库名为svnrepos
    • 指定检出至目录。本示例中,目录为C:\KDR

    部署svnserve访问SVN_搭建和使用SVN_建站教程_云服务器 ECS 阿里云技术文档 第7张
    如果出现下图所示信息,表示检出成功。
    部署svnserve访问SVN_搭建和使用SVN_建站教程_云服务器 ECS 阿里云技术文档 第8张
    说明 第一次登录需要输入账号和密码,即您在passwd文件中设置的账户和密码。