更新时间:2024-10-18 GMT+08:00
分享

部署和使用SVN

简介

Subversion(SVN) 是一个开源的版本控制系统,管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样您就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

本文以CentOS 7.2 64位系统为例,说明如何在CentOS 7.2上部署和使用SVN。

前提条件

  • 已购买一台弹性云服务器,且已为其绑定弹性公网IP。
  • 弹性云服务器所在安全组添加了如下表所示的安全组规则,具体步骤参见为安全组添加安全组规则
    表1 安全组规则

    方向

    类型

    协议

    端口/范围

    源地址

    入方向

    IPv4

    TCP

    22

    0.0.0.0/0

    入方向

    IPv4

    TCP

    80

    0.0.0.0/0

    入方向

    IPv4

    TCP

    443

    0.0.0.0/0

    入方向

    IPv4

    TCP

    3690

    0.0.0.0/0

  • 为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用自动化工具配置华为云镜像源(x86_64和ARM)?

部署SVN

  1. 安装SVN。

    1. 登录弹性云服务器。
    2. 执行以下命令,安装SVN。

      yum install subversion

    3. 执行以下命令,查看SVN版本。

      svnserve --version

      回显如下类似信息:

  2. 创建SVN版本库。

    1. 执行以下命令,创建目录。

      mkdir /var/svn

    2. 依次执行以下命令,创建版本库。

      cd /var/svn

      svnadmin create /var/svn/svnrepos

    3. 依次执行以下命令,查看自动生成的版本库文件。

      cd svnrepos

      ls

      回显如下类似信息:

      Subversion目录说明如下:

      • conf目录:SVN版本库的配置文件(版本库的访问账号、权限等)。
      • db目录:存放所有版本控制的数据存放文件。
      • format文件:一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。
      • hooks目录:放置hook脚本文件的目录。
      • locks目录:用来追踪存取文件库的客户端。

  3. 设置SVN库的账号密码。

    1. 执行以下命令,打开用户配置文件。

      cd conf/

      vim passwd

    2. i键进入编辑模式。
    3. [users]块中添加用户账号和密码。

      添加用户账号和密码的格式为:账号=密码。如下图示例中的user1(账号) = passwd1(密码),注意等号两端要有一个空格。

    4. Esc键退出编辑模式,并输入:wq保存并退出。

  4. 设置账号的权限。

    1. 执行以下命令,打开权限控制文件。

      vim authz

    2. i键进入编辑模式。
    3. 在末尾添加如下代码(其中,user1为步骤3添加的账号,r表示读权限,w表示写权限)。
      [/]
      user1=rw

    4. Esc键退出编辑模式,并输入:wq保存并退出。

  5. 修改SVN服务配置文件。

    1. 执行以下命令,打开SVN服务配置文件。

      vim svnserve.conf

    2. i键进入编辑模式。
    3. 找到如下配置行,删除行前面的注释符#和空格。
      注意:每行不能以空格开始,等号两端要有一个空格
      anon-access = read    #匿名用户可读。若设置anon-access = none,表示不允许匿名用户访问。设置为 none,可以使日志日期正常显示
      auth-access = write   #授权用户可写
      password-db = passwd  #使用哪个文件作为账号文件
      authz-db = authz      #使用哪个文件作为权限文件
      realm = /var/svn/svnrepos #认证空间名,版本库所在目录

    4. Esc键退出编辑模式,并输入:wq保存并退出。

  6. 执行以下命令,启动SVN版本库。

    svnserve -d -r /var/svn/svnrepos

  7. 执行以下命令,查看SVN服务是否开启。

    ps -ef |grep svn

    回显如下类似信息,表示SVN服务已经开启。

    运行killall svnserve命令,可停止SVN服务。

使用SVN

使用SVN管理代码的常见流程为:

  1. 您提取源代码到本地(Checkout)。
  2. 其他人修改并提交源代码到Repository。
  3. 您获得最新的代码(Update)。
  4. 您修改并调试成功源代码。
  5. 提交修改后的代码到Repository,其他人即可看到您的修改(Commit)。

具体操作流程如下:

提取源代码到本地(Checkout)

  1. 在本地Windows环境中下载并安装TortoiseSVN客户端
  2. 在本地项目文件夹内的空白区域单击鼠标右键。

    本示例中,项目文件夹为C:\work01。

  3. 在弹出菜单中,选择“SVN Checkout...”。

  4. 填写如下参数后,单击“OK”。
    • URL of repository:版本库URL,源代码统一存放的地址,格式为svn://实例公网IP地址/。
    • Checkout directory:检出到本地的目录,本文示例中,目录为C:\work01。

    第一次登录需要输入账号和密码,即步骤3在passwd文件中设置的用户和密码。

    检出完成结果如下。

获取更新(Update)

SVN服务端系统库上的项目更新后,您可在本地项目文件空白处单击右键,选择“SVN Update”,即可自动完成下载最新项目,并会显示所有更新内容。

在原项目文件夹内选择SVN Update,会自动覆盖原有内容。建议您先备份,再更新,防止自己本来的项目内容丢失。

提交修改(Commit)

  1. 在项目文件空白处单击右键,选择“SVN Commit...”。

  2. 输入本次提交的版本更新信息(所做修改的注释),选中要提交的操作内容,单击“OK”。

    即可将本地项目提交到SVN服务器资源库,覆盖资源库项目从而实现更新。

    如果提交时出现冲突,即两人都提交修改,后提交者由于版本落后会提交失败。这时,您可以先备份自己的项目,然后从服务端下载最新的项目,并将自己的项目覆盖到本地项目文件夹,再单击SVN提交即可成功提交。

相关文档