SVN:是一款代码管理工具,他能记住你每次的修改,查看所有的修改记录,恢复到任何历史版本,恢复已经删除的文件。

SVN和GIT相比

  1. 使用简单,上手快。
  2. 目录级权限控制,企业安全必备。
  3. 子目录checkout,减少不必要的文件检出。

SVN主要应用

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

SVN的基本操作

提交(commit)

将本仓库内没有与服务器进行同步的内容提交至服务器以实现同步,

(提交前可以双击一下文件以查看文件修改的内容,左边为之前版本,右边为现版本,建议每次提交前先进行一下SVN的更新,以免引起不必要的冲突)

检出(checkout)

写下具体的仓库的URL地址以进行检出。

(也可以直接检出仓库里的具体文件,直接写出具体路径即可)

(检出完成后目录上有个绿色的勾,这表示你和SVN的服务端是同步的,整个仓库也和SVN服务端同步,可以往仓库里提交文件进而同步到SVN服务器)

更新(update)

在此仓库内点击更新此时便会将服务器内现版本的内容同步到仓库。

显示日志

可以看自己的所有版本的提交记录,点击特定版本后再右键鼠标点击复原到此版本后便可以回归到你指定的版本。

SVN的撤销和恢复

撤销本地的修改

点击SVN的Revert(SVN还原)按钮,便会将之前改了但是没提交的数据变成之前已经提交过了但没改的数据。

撤销已提交的内容

点击SVN显示日志,右键自己错误的提交后选择复原此版本做出的修改。撤销只是在本地撤销之后还应提交到服务端。

SVN忽略文件和文件夹

点击特定文件夹选择SVN的添加到忽略列表选项,则SVN在提交的时候便会对此文件的内容进行忽略,此文件的内容便不可以被提交。如果想要取消忽略,则点击Add按钮。

SVN的冲突解决

什么情况下容易发生冲突

  1. 多个人修改了同一文件的同一行
  2. 无法进行合并的二进制文件进行合并

怎么避免冲突

  1. 经常update同步下他人的代码
  2. 二进制文件不要多个人同时操作

冲突的解决

使用你/我的文本来解决冲突

uodate后出现冲突可以直接编辑冲突,使用某个文本块作为正确文本进行恢复来解决冲突,然后标志已解决。

SVN的分支

  1. 当我们要隔离线上版本和开发版本的时候就需要开分支了。
  2. 大功能开发,不想影响到其他人,自己可以独立写个分支去开发。

SVN的经典目录结构

  1. 主干(trunk)
  2. 分支(branches)
  3. 标签(tags)

点击主干文件夹,选择分支选项,就会在主干的条件下新建一条分支出来

SVN分支合并

点击修改后的分支,之后点击显示日志后确定特定版本后选择合并版本到具体主干所在的文件夹,这样在分支里修改的内容便会合并到主干上。

合并完成之后主干还需提交一次。

切换分支:在多个分支之间进行切换

SVN代码暂存

应用场景

  1. 代码改了很多,突然需要紧急修复一个Bug,但是代码没写完,不能提交
  2. 代码重构了很多,突然要发布新版本,但是代码还跑不起来,不能提交

shelve:暂存后会把本地的修改撤销掉(就是没有提交的文件,没和服务器同步的文件暂存后会消失)

checkpoint:暂存后不会把本地的修改撤销掉。

unshelve:取出暂存

SVN复杂代码合并

情况

  1. 主干开发新功能改了很多。
  2. 两个分支之间的代码时间久了,差异大,无法直接分支合并或指定提交记录合并代码。

解决

实用工具:BeyondCompore对比合并

左右写2个文件路径,然后右键比较内容,他就会自动帮你找不同

SVN教程(集中式版本控制)相关推荐

  1. 分布式和集中式版本控制的区别

    Chapter: 开始了解Git 先谈谈版本控制的一些事 Git诞生背后的一些故事 版本控制:集中式VS分布式 Git的思想和基本工作原理 Git在Windows下的安装 前面提到,Linus一直痛恨 ...

  2. 集中式版本控制 VS 分布式版本控制

      目前企业使用的版本控制系统基本上都是 Git 和 SVN.其中 SVN 是集中式的版本控制系统,而 Git 是分布式的版本控制系统.那么它们之间有什么区别呢? 集中式版本控制系统   集中式版本控 ...

  3. 集中式版本控制与分布式版本控制

    文章目录 集中式版本控制 分布式版本控制 引用 集中式版本控制 所有的版本数据都存在服务器上,用户的本地设备就只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或 ...

  4. 集中式版本控制与分布式版本控制——Git 学习笔记01

    什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件"另存为"一个文 ...

  5. Git学习笔记(集中式版本控制工具与分布式版本控制工具)

    集中式版本控制工具 集中式版本控制工具是指所有的项目版本都存储在唯一的服务器中,而团队中使用者本地只保存有最新版本.因此,当服务器宕机或故障时,服务器中文件如果损坏或缺失,使用者本地只有最新版本,因此 ...

  6. 版本控制:集中式VS分布式了解它们的运行方式

    前面提到,Linus一直痛恨CVS及SVN这些集中式的版本控制系统,为什么呢?Git是分布式版本控制系统,那么集中式和分布式版本控制系统又有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央 ...

  7. Git复习(一)之简介、安装、集中式和分布式

    简介 Git是分布式版本控制系统,使用C语言开发的,CVS.SVN是集中式的版本控制系统,集中式的版本控制系统不但速度慢,而且必须联网才能使用. Git是分布式版本控制系统,同一个Git仓库,可以 分 ...

  8. 何为集中式版本控制系统与分布式版本控制系统?

    什么是集中式版本控制系统与分布式版本控制系统? 集中式版本控制系统:版本库是集中放在中央服务器的,当我们实际工作的时候,用的都是自己的电脑,所以首先要连接中央服务器,从那里得到最新的版本,然后编写或者 ...

  9. 【git】—集中式与分布式版本控制系统

    [前言] 大家都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了,之前的linux代码是由Linus本人通过手工方式合并代码,后来为了切 ...

最新文章

  1. hive中array嵌套map以及行转列的使用
  2. 012_logback中的DBAppender
  3. aidl demo调用原理
  4. Two-stage rotation animation is deprecated. This application should use the smoother single-stage an
  5. [Halcon] 算子学习_Calibration_Calibration Object
  6. C语言 多重指针--整型字符字符串 int**pp
  7. Sublime Text 3 搭建 React.js 开发环境
  8. C# DataSet转JSON
  9. HTML+CSS物业后台管理系统模板
  10. 北京的一場演出-私人行程
  11. Android应用程序消息处理机制(Looper、Handler)分析(3)
  12. react-native 解决“Could not get BatchedBridge...” 的问题
  13. 《集异璧》作者侯世达:王维、杨绛与机器翻译的本质
  14. PCA(主成分分析法)使用情景及排序企业综合实力示例
  15. 文件指针与文件位置指针,文件位置指针相关的库函数
  16. 十个非常实用的PS画笔使用技巧
  17. win7计算机系统减肥,怎样给win7瘦身 win7瘦身攻略
  18. cab文件介绍及制作方法 1
  19. 在Storyboard中设置borderColor
  20. 下载keep运动软件_Keep下载_Keep安卓版下载_Keep app下载-太平洋下载中心

热门文章

  1. DDoS 攻击与防护(二):DDoS 防护购买和使用入门指南,DDoS 防护服务有哪些应用场景?
  2. 水山破碎锤的五个大特点
  3. 新书推荐《财务数据治理实战》
  4. Putty使用教程(抓取串口log)
  5. imageview设置边框
  6. 真的很棒!看道翰天琼认知智能机器人哇塞表现 (3)
  7. SpringMVC源码解析HandlerMethod
  8. 输入八进制数,输出十进制数(C语言)
  9. Oracle表白,最新版高级情话大全表白专用,甜言蜜语的情话
  10. Plupload 详细文档讲解