美文网首页
SVN教程 -- 基于自己学习记录

SVN教程 -- 基于自己学习记录

作者: 希希里之海 | 来源:发表于2019-04-02 22:25 被阅读0次

    SVN教程 -- 基于自己学习记录

    1. 概述

    a. 什么是SVN?

    Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统。相较于 git ,svn 是集中式版本控制系统。

    SVN官网链接

    b. 什么是集中式版本控制系统?

    集中式版本控制系统可以这样理解:所有的源代码都放在统一的服务器上,开发者从服务器下载项目组的最新代码,进入自己的分支进行开发工作,提交代码,最后再把自己的分支合并到服务器主分支上,更新服务器源代码。由于源代码最后都是放在服务器上的,服务器统一集中管理,所以我们把这种操作模式叫做集中式管理。

    2. 安装

    这里以 Ubuntu 14.04.5 LTS 安装 SVN 为例,使用下列命令安装 SVN:

    sudo apt-get install subversion
    

    安装完成后输入:

    svn –-version
    

    出现下列信息即安装成功。

    3. 配置 SVN 服务器

    安装好 SVN 后,我们便可以进行相关操作了。

    1. /home/ubuntu/test 下创建一个 svn 文件夹。

      cd /home/ubuntu/test
      mkdir svn
      
    2. 在 svn 文件夹下创建一个 myCode文件夹仓库。

      svnadmin create /home/ubuntu/test/svn/myCode
      

      创建完成后的目录结构如图所示:

    1. 创建完成后,我们需要配置一下 SVN。

      在 conf 文件夹下有三个文件:

      authz:用户权限配置文件

      passwd:用户密码配置文件

      svnserve.conf:对 svn 访问用户的配置文件。

      a. 打开 svnserve.conf:

      vim svnserve.conf
      

      修改其中的内容如下(将注释 # 去掉):

      anon-access = read       
      auth-access = write
      password-db = passed 
      authz-db = authz
      

      b. 修改 authz ,在最末行加入:

      [/]
      user = r
      user = rw
      

      多用户时可以设置用户组:

      在 [groups] 下面添加用户组名和用户名

      [groups]
      mygroup = admin, user, xxx
      readGroup = xxx
      

      设置用户组读写权限:

      [/]
      @mygroup = rw
      @readGroup = r
      

      设置用户组权限需要加@,单个用户的时候不用加。

      c. 设置密码,打开 passwd 文件,在 [users] 下面添加账号和密码:

      [user]
      admin = admin
      user = 123456
      xxx = xxx
      

      格式如下:

      用户名 = 密码
      
    2. 启动 svn 服务器。

      svnserve -d -r /home/ubuntu/test/svn/myCode
      

      当回车后没有返回结果时便说明启动成功,如果显示错误则需重新配置 svn。

    4. SVN 项目的导入导出及使用

    1. 导入本地代码到服务器。

      svn import /home/ubuntu/test/love_source svn://localhost/mycode/love_source --username=admin --password=admin -m "初始化导入"
      
    2. 从服务器下载代码到本地,这里就又是我的 Ubuntu 环境,你可以根据项目需要下载到不同的客户端,只需将 localhost 改为 服务器的 ip 地址。

      svn checkout svn://localhost/mycode --username=admin --password=admin  /home/ubuntu/test/code
      
    3. 创建一个新文件夹并提交。

      mkdir branches
      svn add branches
      svn commit -m "new folder"
      
    4. 创建新分支。

      比如我们这里的 love 文件夹是我们的主线,我们创建一个 love 的新分支并提交:

      svn copy love/ branches/my_branch
      svn commit -m "add my_branch"
      

      接着就可以切换到 my_branch 分支进行开发,比如这里切换到新分支并创建 index.html 文件,将 index.html 加入版本控制并提交到版本库中:

      cd branches/my_branch/
      vim index.html
      svn add index.html
      svn commit -m "add index.html"
      
    5. 合并分支。

      切回 love 主线,合并分支 my_branch:

      cd /home/ubuntu/test/code/love_source/love
      svn update
      svn merge ../branches/my_branch/
      

      svn update :将当前目录及其子目录下的所有文件都更新到最新版本。

      这里可能会遇到 SVN MERGE: Unreadable path encountered; access denied , 这是因为打开了匿名获取权限造成的,将 anon-access = none 就可以了。

      最后再将合并好的 love主线提交到版本库中:

      svn commit -m "add index.html"
      

    至此,我们便完成了 SVN 的认识,安装配置,基本使用的操作步骤。

    5. 参考链接:

    6. 常用命令:

    Linux公社有篇文章写的很好,这里给出链接,可以参考下:

    https://www.linuxidc.com/Linux/2011-09/42347.htm

    相关文章

      网友评论

          本文标题:SVN教程 -- 基于自己学习记录

          本文链接:https://www.haomeiwen.com/subject/rkxobqtx.html