Qt6教程之三(18) 使用SVN进行版本管理

一 SVN介绍

SVN是什么

SVN是Subversion的简称,中文含义是版本控制系统。是非常最流行的开源版本控制系统。

Subversion在2000年由CollabNet Inc开发,现在发展成为Apache软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。

SVN如何管理数据

SVN管理的数据以时间线为主导,数据全部集中放置在一个中央资料档案库(Repository)中。

这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括程序源码。

SVN体系架构

SVN采用客户端/服务器体系,项目的各种版本都存储在服务器上,程序开发人员首先将从服务器上获得一份项目的最新版本,并将其复制到本机,然后在此基础上,每个开发人员可以在自己的客户端进行独立的开发工作,并且可以随时将新代码提交给服务器。当然也可以通过更新操作获取服务器上的最新代码,从而保持与其他开发者所使用版本的一致性。 

SVN的客户端有两类,一类是基于Web的WebSVN等,另一类是以Tortoise SVN为代表的客户端软件。前者需要Web服务器的支持,后者需要用户在本地安装客户端,两种都有免费的开源软件供使用。

SVN存储数据的方式

SVN存储版本数据也两种方式:

  1. BDB(一种事务安全型表类型);
  2. FSFS(一种不需要数据库的存储系统)。

因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
 

SVN主要功能
①SVN属于集中化的版本控制系统,有个不太精确的比喻:SVN = 版本控制+ 备份服务器
②SVN使用起来有点像是档案仓库的感觉,支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等
③SVN大都采用图形界面操作,直观,上手快
 

四、SVN的优缺点
优点: 
1、 管理方便,逻辑明确,符合一般人思维习惯。 
2、 易于管理,集中式服务器更能保证安全性。 
3、 代码一致性非常高。 
4、 适合开发人数不多的项目开发。

 
缺点: 
1、 服务器压力太大,数据库容量暴增。 
2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。 
3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
 

SVN系统的几个术语

User:用户,可以远程连接到SVN服务器的权限实体。

User Group:用户组,用于管理一组权限相同的用户。

Repository:版本库,在服务器端保存着的项目中所有的文件和操作记录,一般一个项目对应一个版本库。

Revision:版本,版本库中任意一次改动对应一个版本。

Working Directory:工作目录,在客户端保存着的当前项目文件的目录(可能与版本库内容不一致)。

Check out:检出,客户端第一次从版本库中下载项目,当前目录下保存——创建工作目录。

Commit:提交,客户端将更改后的项目提交到版本库。

Update:更新,客户端从版本库下载最新版的项目文件

SVN的作用

  1. 备份资源文件:若有错可以及时还原;
  2. 协同修改:实际开发中不止一个人在开发,如果多人开发不可能进行通过文件整理来合并代码,每个人都可以提交交代码,SVN服务器会自动合并代码。
  3. 多版本项目文件管理:一个项目可以保留多个分支;
  4. 追溯编写时间和编写人:每个人写的都有留档;
  5. 权限控制:可以把部分代码给不同的开发者,以免一个人把整个项目的代码都获取完,保证代码的安全性。
  6. 代码仓库:每来一个新的职员提交链接就可以下载代码;
     

SVN的优势有哪些

  1. 使用群体非常庞大,一般中小企业的项目文件、代码一般都采用SVN;
  2. 免费、开源、且跨平台特性非常好,这点毫无疑问是最大的优势;
  3. 简单易用,很多操作基本都是图形界面,使用起来非常容易及方便;
  4. 功能稳定,经过十多年的发展,SVN使用起来非常容易,功能也很完善。

二 SVN下载安装

如上面的介绍,SVN有服务端和客户端,下面我们依次介绍服务端与客户端的下载安装方法。

服务器端下载地址:

Download | VisualSVN Server

进入官网后,按照电脑操作系统下载32位或64位版本的服务端安装包,博主的操作系统是Windows64位,所有选择下面的安装包下载安装,

Qt6教程之三(18) 使用SVN进行版本管理_第1张图片

下载完成后,打开安装包开始安装,

安装下面的顺序一步步安装即可。

Qt6教程之三(18) 使用SVN进行版本管理_第2张图片

Qt6教程之三(18) 使用SVN进行版本管理_第3张图片

Qt6教程之三(18) 使用SVN进行版本管理_第4张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第5张图片

Qt6教程之三(18) 使用SVN进行版本管理_第6张图片

Qt6教程之三(18) 使用SVN进行版本管理_第7张图片

Qt6教程之三(18) 使用SVN进行版本管理_第8张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第9张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第10张图片

Qt6教程之三(18) 使用SVN进行版本管理_第11张图片 至此,服务端安装完成。

接下来安装客户端TortoiseSVN,下载地址如下:

 https://www.visualsvn.com/files/TortoiseSVN-1.14.5.29465-x64-svn-1.14.2.msi

 

下载完成后,双击安装文件开始安装,

 Qt6教程之三(18) 使用SVN进行版本管理_第12张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第13张图片

设定安装路径,

Qt6教程之三(18) 使用SVN进行版本管理_第14张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第15张图片

Qt6教程之三(18) 使用SVN进行版本管理_第16张图片

安装完成后,重启一下电脑,

 Qt6教程之三(18) 使用SVN进行版本管理_第17张图片

三 SVN使用

首先,我们在找到刚刚安装好的应用VisualSVN Server Manager ,并打开它,

打开后如下,

Qt6教程之三(18) 使用SVN进行版本管理_第18张图片 按照如下步骤,我们新建一个仓库

 Qt6教程之三(18) 使用SVN进行版本管理_第19张图片

Qt6教程之三(18) 使用SVN进行版本管理_第20张图片

 输入数据库名称MyData ,

 Qt6教程之三(18) 使用SVN进行版本管理_第21张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第22张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第23张图片

Qt6教程之三(18) 使用SVN进行版本管理_第24张图片

 Qt6教程之三(18) 使用SVN进行版本管理_第25张图片

 数据库创建完成后,接着创建一个用户,名字叫Manger,设置密码为123456,点击OK,

 Qt6教程之三(18) 使用SVN进行版本管理_第26张图片

Qt6教程之三(18) 使用SVN进行版本管理_第27张图片 

 Qt6教程之三(18) 使用SVN进行版本管理_第28张图片

接着创建一个Groups,叫MangerGroup,

 Qt6教程之三(18) 使用SVN进行版本管理_第29张图片

Qt6教程之三(18) 使用SVN进行版本管理_第30张图片 

 点击Add,

Qt6教程之三(18) 使用SVN进行版本管理_第31张图片

一直点击OK,最后创建Group成功, 

Qt6教程之三(18) 使用SVN进行版本管理_第32张图片

接着我们在刚才新建的数据库下建立新的文件夹,叫test1 

Qt6教程之三(18) 使用SVN进行版本管理_第33张图片

Qt6教程之三(18) 使用SVN进行版本管理_第34张图片 

Qt6教程之三(18) 使用SVN进行版本管理_第35张图片 

接下来,我们把本地的一个项目或文件上传到刚才新建的仓库中。博主这里是上传一个使用Qt新建的项目叫test_SVN,其实也算一个文件夹,操作如下:

 

在项目文件上面点击鼠标右键,按照下述指引进行操作,

Qt6教程之三(18) 使用SVN进行版本管理_第36张图片 选择刚才的test1路径,可以写入一些提交说明,

 Qt6教程之三(18) 使用SVN进行版本管理_第37张图片

点击OK后,SVN把项目文件夹下面的所有文件都扫描出来了,

 Qt6教程之三(18) 使用SVN进行版本管理_第38张图片

再次点击提交OK,文件将上传至服务器中。至此文件上传至服务器实例完成了。

接下来我们看看,该怎么从服务器下载项目,

首先在桌面新建一个文件夹,叫test1,

Qt6教程之三(18) 使用SVN进行版本管理_第39张图片

选中文件夹,点击鼠标右键,按照下述操作, 

 Qt6教程之三(18) 使用SVN进行版本管理_第40张图片

接着进行下面的操作,

Qt6教程之三(18) 使用SVN进行版本管理_第41张图片 

输入之前我们输入的用户名和密码,

Qt6教程之三(18) 使用SVN进行版本管理_第42张图片 

点击OK后,文件下载成功,

Qt6教程之三(18) 使用SVN进行版本管理_第43张图片 

是不是非常方便呢,各位感觉试试吧! 

四 Qt中使用SVN进行版本管理

在Qt中使用SVN也是一件非常容易的事情,首先我们需要进行必备的配置,博主使用的是Qt Qcreator 9 ,首先配置SVN服务器端可执行文件地址,根据自己的安装路径进行选择设置,如下:

Qt6教程之三(18) 使用SVN进行版本管理_第44张图片

Qt6教程之三(18) 使用SVN进行版本管理_第45张图片 

配置完成后,接下来我们把SVN服务端的项目下载到Qt Qcreator 9中进行继续开发,步骤如下:

Qt6教程之三(18) 使用SVN进行版本管理_第46张图片 

Qt6教程之三(18) 使用SVN进行版本管理_第47张图片 

Qt6教程之三(18) 使用SVN进行版本管理_第48张图片点击完成项目代码的下载, 

 Qt6教程之三(18) 使用SVN进行版本管理_第49张图片

至此,我们就可以在Qt Qcreator 中继续开发代码了,所有的操作均在工具栏里面,如下:

Qt6教程之三(18) 使用SVN进行版本管理_第50张图片 

比如,我们写入几行代码,然后执行对比差异, 

Qt6教程之三(18) 使用SVN进行版本管理_第51张图片

对比效果:

Qt6教程之三(18) 使用SVN进行版本管理_第52张图片 

是不是非常激动人心呢,赶紧试试吧。 

下一篇博客:

Qt6教程之三(19) Git版本管理工具_折腾猿王申兵的博客-CSDN博客

上一篇博客:

Qt6教程之三(17) SQLite数据库使用_折腾猿王申兵的博客-CSDN博客

你可能感兴趣的:(Qt学习,程序开发,c++,qt)