当前位置:网站首页>【SVN】SVN是什么?怎么使用?

【SVN】SVN是什么?怎么使用?

2022-07-07 06:28:00 宋丹敏

SVN是什么?

SVN就是一个开源的版本控制系统。

SVN subversion

存放随着时间改变的数据。

数据放在中央资源管理库中(Repoitory)中—类似一个文件服务器,会记住每一次文件的变动。

代码版本管理工具

它能记住每次的修改

查看所有的修改记录

恢复以及删除的文件

简单概念

  • repository 源代码库
  • Checkout 提取
  • Commit 提交
  • Update 更新

开发流程:Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

当两个程序员修改同一文件时/同一行时?

SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。

SVN和Git区别:

使用简单,上手快

目录权限控制,企业安全必备

子目录CheckOut检出,减少不必要的文件检出

CVS和SVN区别:

CVS 计算机并行版本系统(Concurrent Version System):只能跟踪单个文件历史

SVN 版本控制工具 (Subversion):依据时间跟踪目录变动,目录和文件都能进行版本控制。

SVN比起CVS优点:

  1. 原子提交

    一次提交不管单个还是多个文件,都是作为一个整体提交的。

    如果中途发生意外/传输中断,不会引起数据库不完整和数据损坏。

  2. 重命名、复制、删除文件等动作都保存在版本历史记录当中。

  3. 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)

  4. 目录也有版本历史。

    整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。

  5. 分支的开销非常小。

  6. 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。

    这样减少了很多不必要的和数据库主机之间的网络流量。

SVN的主要功能:

  1. 目录和文件版本控制

  2. 真实的版本历史

    在Subversion中,你可以增加(add)、删除(delete)、复制(copy)和重命名(rename)

  3. 自动提交

  4. 纳入版本控管的元数据

  5. 选择不同的网络层

  6. 一致的数据处理方式

  7. 有效的分支(branch)与标签(tag)

  8. Hackability

SVN主要应用:

  1. 开发人员用来做代码管理
  2. 用来存储一些重要的文件,比如合同
  3. 公司内部文件共享,并且能按目录划分权限

SVN基本操作

  • 提交和更新

    检出 CheckOut

    新增 Add

    提交 Commit

    更新 Update

    历史记录

  • 撤销和修改

    1. 撤销本地的修改
    2. 撤销已经提交内容
    3. 恢复到指定版本
  • 添加忽略

    怎么忽略文件,有些文件不想提交,就可以添加忽略

  • 解决冲突

    • 什么情况下容易发生冲突?

      多个人修改了两个文件的同一行

      无法进行合并的二进制文件

    • 怎么避免冲突?

      经常更新同步一下他人的代码

      二进制文件不要多人同时操作

    • 冲突了怎么办?

      手动解决修改冲突, 或者直接使用对方的

  • 分支

    什么时候需要开分支?

    隔离线上版本和开发版本

    大功能开发,不想影响到其他人,自己独立开发分支去开发

  • 暂存

    暂存有什么用?

    情况一:代码改了很多,但是突然需要紧急修改一个Bug,但是代码灭有写完,不能提交。

    情形二:代码重写很多,突然需要发布新版本,但是代码还跑不起来,不能提交。

    这种情况下就可以先把代码暂存起来,

  • 复杂代码合并

    情况:

    主干开发新功能,改变了很多

    分支是线上版本,修改了很多bug

    两个分支的代码时间久了差异很大,无法直接分支合并或者指定修改记录合并

    使用BeyondCompare工具对比合并

SVN目录结构:

svn分支

  • svn经典目录结构:

    trunk 树干

    branches 分支

    tags 标签

​ Repositories 仓库:存放被svn管理的项目文件,可以存放源码,文档等;

​ Users 用户:创建和编辑用户;

​ Groups 权限组:创建和编辑用户组;

SVN工作流程和架构图

SVN工作方式:

image-20220706084616568

SVN架构图:

image-20220706085020614

操作SVN服务器的两种方式:

  1. command-line 命令行方式;

  2. GUI-client 图形界面方式;

    • svn服务连接方式:

      (1) internet网络连接:

      ​ apache服务器;

      ​ svn服务器;

      (2) local 本地连接:

    • svn数据存储方式:

      ​ 文件方式:FSFS(推荐使用)

      ​ 数据库方式:BerkeleyDB(伯克利DB)

原网站

版权声明
本文为[宋丹敏]所创,转载请带上原文链接,感谢
https://blog.csdn.net/MS_SONG/article/details/125639658