目录

一、SVN是什么?

二、SVN有什么作用?

2.1备份

2.2还原代码

2.3多人协同修改

2.4追溯问题

2.5权限控制

三、下载安装

3.1客户端下载

3.2服务端下载

3.3客户端安装

3.4服务端安装

四、基本功能&概念

五、操作使用

5.1创建版本库

5.2创建用户

5.3浏览版本库

5.4检出

5.5提交

5.6更新

5.7解决冲突

5.8查看历史记录

5.9比较不同

六、分支

6.1创建分支

6.2分支切换

6.3合并分支


一、SVN是什么?

SVN(subversion) 是一款用于多人共同开发同一个项目的版本控制工具,是Apache软件基金会组织下的一个项目。

二、SVN有什么作用?

通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题。

2.1备份

小小负责的模块就要完成了,电脑突然蓝屏,硬盘光荣牺牲,这么多天的努力付诸东流。

2.2还原代码

项目需要完成一个很复杂的功能,大大摸索了一周终于有些眉目,可是代码已经被改得面目全非了,再也回不到过去的版本了。

2.3多人协同修改

小小和大大分别从服务器拉了同一个文件,先后对文件进行了修改并上传到服务器,可此时服务器并不能同时记录小小和大大的操作。

2.4追溯问题

程序员提交代码后线上直接崩了,svn可以根据代码的编写人和编写时间轻松追溯问题。

2.5权限控制

svn可以根据不同项目,设置相关人员只能访问对应的项目,否则很难保证钻石王老五会不会跑去别的项目乱搞一波。

-----针对上述问题,svn可以很好的解决,这也是众多公司选择它的原因。

三、下载安装

一般去到新公司,公司都是部署好服务端了的,我们只需要安装svn客户端,向开发要链接、账号密码直接访问即可;现在我们是自己学习使用,所以还是自行搭建服务端和客户端,方便我们练习操作。

3.1客户端下载

下载地址:https://tortoisesvn.net/downloads.html

打开链接,选择下载适合自己的安装包

3.2服务端下载

下载地址:https://www.visualsvn.com/server/download/

打开链接,选择下载合适自己的安装包

下载好,我们就进入安装流程了

3.3客户端安装

双击安装包,然后一路按照下述图片步骤进行即可

win+R快捷键,进入cmd验证是否安装成功

输入svn --version回车,如图所示,即为安装成功

3.4服务端安装

双击安装包,然后一路按照下述图片步骤进行即可

后续可以通过win键-找到svn服务端打开

到这里svn客户端和服务端都安装好了,所谓知己知彼,百战不殆,现在先来了解一下它的一些基本功能和概念吧。

四、基本功能&概念

repository:源代码库,源代码统一存放的地方;

checkout:检出,当手上没有源代码的时候,需要从源代码库检出一份;

commit:提交,当修改了本地代码,需要提交到源代码库;

update:更新,当检出了源代码后,执行update操作,本地的代码就可以更新为与源代码库的一致;

目录版本控制:svn实作了一个“虚拟”的版本控管文件系统,能够依据时间跟踪整个目录的变动,目录和文件都能进行版本控制;

真实的版本历史:在svn中,可以对目录和文件进行增加、复制、删除、重命名的操作,所有新加的文件都是从一个新的、干净的版本开始;

自动提交:svn的提交动作是不完全更新,允许开发人员以逻辑区间建立并提交变动,以防止部分提交成功时出现问题;

纳入版本管控的元数据:每个文件和目录都附有一组属性关键字,并且和属性值关联,可以创建存储任何key/value对;

选择不同的网络层:svn服务器使用的是自定义的通信协议,可以通过ssh以tunnel方式使用;

一致的数据处理方式:svn使用二进制差异算法来表示文件的差异,它对文字和二进制文件都一视同仁,以压缩的形式存储这两类文件,而且文件差异是以两个方向在网络上传输的;

有效的分支和标签:svn建立分支和标签的方法,就只是复制该项目,操作简单且耗时小。

五、操作使用

5.1创建版本库

简单理解,就是创建一个存放文件的仓库。

5.2创建用户

创建用户后,使用这个用户身份才能访问我们的服务端。

5.3浏览版本库

这个操作就是打开这个库,查看里面有什么,存了哪些文件。

5.4检出

检出就是从服务端拉一份最新的文件到本地,执行本地操作后,服务端和本地的文件是同步的。

.svn的文件夹不要动,它代表的是本地与服务端的连接,如果删除了,本地将无法连接服务端。

5.5提交

就是把我们本地的文件上传到服务器。

再浏览一下版本库,看看我们的提交是否已成功

5.6更新

更新就是把服务器的文件更新到我们本地,更新完成之后,本地的文件和服务器的文件才是同步的。这里要注意的是,每次提交前必须先更新,否则容易引起冲突。

5.7解决冲突

冲突出现场景复现:

1.用户1检出项目

2.用户2检出项目

3.用户1修改文件并提交

4.用户2修改文件并提交

5.发生异常

解决办法:用户2手动合并文件,再上传。

打开文件,保留用户1和用户2提交的内容,其他删除,保存后再次提交

5.8查看历史记录

查看文件的历史版本,可以看到版本号、修改人、修改时间等信息。

5.9比较不同

六、分支

分支概念:分支是为了将修改记录的整体流程分叉保存,分叉后的分支不受其他分支的影响;在软件开发过程中,通常有以下分支:Features、Develop、Release、Master、Hotfix。

Features:其实Features不是一个分支,而是一个分支文件夹,里面包含了每个程序员开发的功能点,开发完成后会合并到Develop分支。

Develop:开发分支,更新和变更最频繁的分支,正常情况下,程序员都是在这个分支进行开发的。

Release:预发布分支,一般来说,一个版本的功能全部开发完成且基本通过测试后,会合并到预发分支。

Master:主分支,稳定的版本分支,正式发布的版本都是从这个分支拉取的。

Hotfix:热更新分支,这个分支的存在是已经正式上线的版本中,发现了重大bug进而进行修复的分支。

6.1创建分支

在主分支的基础上,创建一个开发分支出来,后续在开发分支进行修改;其实就相当于把主分支的东西copy一份出来。即:主分支就是基础版本,开发分支是在基础版本下开发一个新产品。

步骤:选中要创建的分支文件-右键,然后按如下步骤

这个时候本地还是没有更新的,需要更新一次(右键-更新),本地才会出现我们刚才创建的分支。

6.2分支切换

6.3合并分支

 分支合并完成后,两个分支的代码就都是一样的了。

相见即是缘分,希望大家暴富暴美暴桃花!

【SVN版本控制工具】相关推荐

  1. 关于SVN版本控制工具的冲突解决方案

    本文只是关于SVN版本控制工具的冲突解决方案的一点说明.       由于开发人员之间欠缺沟通,往往会出现统一开发模块中有冲突问题发生,此时也突出显示了版本控制工具的优越性.如下:左上方×××区域凸显 ...

  2. 多人开发SVN版本控制工具安装

    SVN版本控制工具安装 1. Beyond Compare 这是一个方便进行文件之间差异对比的工具,可以方便的对文件中的内容进行合并,甚至是文件夹中的内容也可以进行差异对比 直接点击安装即可,除了选择 ...

  3. Java微信公众号开发(五)—— SVN版本控制工具

    1  作用 两个疑问: 什么是版本控制? 为什么要用版本控制工具? 作用: 受保护 受约束 合作开发中,版本控制工具更重要的作用就是让开发者更好地协作,每个人的代码既能互相调用,来共同完成一个较大的功 ...

  4. Svn版本控制工具的作用和应用

    一.   可解决如下问题: 1.      不小心删除了自己的项目文档和源代码文件 2.      不敢修改自己的源代码文件 3.      不知道如何把自己的项目文档传递给他人 4.      不知 ...

  5. SVN 入门教程 图文教程 (对刚进公司的新人很有帮助) (帮助快速熟练使用公司的SVN版本控制工具)

    SVN 入门教程 1.安装SVN 1.1安装完成后,在电脑中新建一个文件夹,用来存放clone下来的代码. 如果你右键出现如上的图标,就说明你SVN安装成功了! 1.2 使用checkout下载项目 ...

  6. SVN版本控制工具详解,基本操作,使用

    一.什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 二.SVN的下载安装 下载地址:http ...

  7. 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT

    一.SVN 1.SVN介绍     2.SVN安装     3.SVN操作 二.GIT 1.GIT介绍     2.集中式和分布式     3.GIT的基本使用     4.GIT时光机     5. ...

  8. 版本控制工具(CVS、SVN、GIT)简介

    2019独角兽企业重金招聘Python工程师标准>>> 版本控制工具:  提供完备的版本管理功能,用于存储.追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基 ...

  9. 版本控制工具--svn和git的使用(一) -----版本控制的好处以及分类

    版本控制工具 版本控制VCS(Version Control Systems)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.这个系统可以自动帮我们备份文件的每一次更改,并且可以 ...

最新文章

  1. python网课观后感_Python OpenOPC的学习观后感
  2. Crypto API 学习笔记一
  3. MVC.Net: jqueryval错误
  4. 升级ipython_Linux服务器python升级
  5. 自动挡车行驶当中,一个不小心碰到一键启动按钮,会怎样?
  6. 微软拒绝修复滥用 MSTSC 的安全绕过缺陷
  7. HTML-图像,音频,视频和路径
  8. [zz]为小米创建虚拟机路由器
  9. 基于C#和DGAL包实现栅格影像的读取和显示
  10. (转)Dinkelbach算法(01二分规划更优解法)
  11. 《工业设计史》第十章:战后重建与设计
  12. mysql etimedout_ETIMEDOUT
  13. 菜鸡的Java笔记 数字操作类
  14. DNA转换为C语言,DNA (C语言代码)
  15. github Your account has been flagged.提示情况的解决办法
  16. 【笔记】reko 0.10.2 反编译工具安装和使用记录|(2) 翻译 user‘s guide
  17. Web漏洞-XXE漏洞(详细)
  18. 串口通信,IIC通信,SPI通信的简单区别
  19. 转]关于jtag和arm仿真器的一些总结
  20. 试卷: 浩鲸科技2019校招算法类笔试题 原地去重

热门文章

  1. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍
  2. Android工具类blankj
  3. 洛谷 P1719 最大加权矩形
  4. 医疗行业大数据医疗分析案例
  5. web开发要学习什么技术,HTML实体字符列表
  6. SQL语法 自然连接 外连接 内连接
  7. MySQL--自然连接的用法
  8. Linux中断——request_irq
  9. 拉格朗日松弛与拉格朗日分解 lagrangian relaxation
  10. jedi-vim --- vim python 自动补全工具安装