0


【SVN版本控制工具】

一、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 git ide

本文转载自: https://blog.csdn.net/deng_deng123/article/details/125990748
版权归原作者 deng_deng123 所有, 如有侵权,请联系我们删除。

“【SVN版本控制工具】”的评论:

还没有评论