专栏首页weixuqin 的专栏SVN教程 -- 基于自己学习记录

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

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>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ArrayList 源码分析

    在 Java 中当创建数组时会在内存中划分一块连续的内存,然后当有数据进入的时候会将数据按顺序的存储在这块连续的内存中。当需要读取数组中的数据时,需要提供数组中...

    希希里之海
  • Spring 的 Bean 管理(XML 方式)

    这里不再做具体的演示说明,相关代码我已经上传 github,可以访问下面链接参考:

    希希里之海
  • redis 学习(11)-- redis pipeline

    所以可以看到,如果执行 n 次的话(比如 n 次 set 操作),时间开销是非常大的。

    希希里之海
  • Linux环境搭建svn服务器

    官网下载:http://subversion.apache.org/packages.html

    幽鸿
  • SVN 常用命令

    子勰
  • svn备忘

    用户1127566
  • SVN常用命令

    SVN(Subversion)是一个自由、开源的项目源代码版本控制工具。目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件。

    阳光岛主
  • Ubuntu下SVN安装和配置

    Ubuntu下SVN安装和配置 一、SVN安装 1.安装包 1.$ sudo apt-get install subversion 2.创建项目目...

    用户1212940
  • svn 客户端批量备份数据(图+文)

    缘由 商业用途的规则,数据与谨慎便成了不可替代的王道,我今天也说svn,在客户端批量备份数据。 前提 考虑跨平台与易用性,选择批处理(.bat),既然是批处理,...

    Java中文社群-磊哥
  • eclipse本地svn插件与库版本不一致更新等操作出错解决方法

    org.apache.subversion.javahl.ClientException: The working copy needs to be upgra...

    ZhangXianSheng

扫码关注云+社区

领取腾讯云代金券