版本控制是什么意思

发布时间 - 2020-06-29 00:00:00    点击率:
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

简述:

版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。

具体来说,在每一项开发任务中,都需要首先设定开发基线,确定各个配置项的开发初始版本,在开发过程中,开发人员基于开发基线的版本,开发出所需的目标版本。当发生需求变更时,通过对变更的评估,确定变更的影响范围,对被影响的配置项的版本进行修改,根据变更的性质使配置项的版本树继续延伸或产生新的分支,形成新的目标版本,而对于不受变更影响的配置项则不应发产生变动。同时,应能够将变更所产生的对版本的影响进行记录和跟踪。必要时还可以回退到以前的版本。例如当开发需求或需求变更被取消时,就需要有能力将版本回退到开发基线版本。在曾经出现过的季度升级包拆包和重新组包的过程中,其实就是将部分配置项的版本回退到开发基线,将对应不同需求的不同分支重新组合归并,形成新的升级包版本。

版本控制是软件配置管理的核心功能。所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合软件开发流程的各个阶段。还需要定义、收集一些元数据来记录版本的辅助信息和规范开发流程,并为今后对软件过程的度量做好准备。当然如果选用的工具支持,这些辅助数据将能直接统计出过程数据,从而方便软件过程改进活动的进行。对于配置库中的各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来说,对于基线版本之前的各个版本都应处于被锁定的状态,如需要对它们进行变更,则应按照变更控制的流程来进行操作。

常见工具:


1.开源版本控制工具

开放源码的版本控制工具有很多,如Concurrent Versions System( CVS)、Subversion( SVN)、Vesta、Revision Control System( RCS)、Source Code Control System( SCCS)等。比较常用的两个工具是CVS和SVN。CVS是Dick Grune在1984年~1985年基于RCS开发的一个客户一服务器架构的版本控制软件,长久以来一直是免费版本控制软件的主要选择。SVN的一个重要开发目标是修正CVS中广为人知的缺点,提供一个新的版本控制软件。对于中小规模团队,SVN是一个比较好的开源版本控制工具,SVN常用客户端工具为TortoiseSVN。

2.成熟的商业工具

商业工具提供了比开源版本控制工具更多的,尤其是和软件配置管理有关的功能。IBM公司的Rational ClearCase是一款重量级的软件配置管理软件,为大中型软件开发企业提供了版本控制、工作空间管理、平行开发支持以及版本审计,可以为拥有上千开发者的大型项目提供全面配置管理支持。


# 架构  # svn  # bug  # 过程中  # 配置管理  # 开源  # 退到  # 是指  # 有效地  # 都应  # 配置文件  # 升级包  # 库中 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用y主机助手快速搭建网站?  如何在IIS管理器中快速创建并配置网站?  如何自定义建站之星网站的导航菜单样式?  canvas 画布在主流浏览器中的尺寸限制详细介绍  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  如何在Windows虚拟主机上快速搭建网站?  如何在阿里云完成域名注册与建站?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel怎么为数据库表字段添加索引以优化查询  JavaScript如何实现倒计时_时间函数如何精确控制  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Laravel Fortify是什么,和Jetstream有什么关系  Laravel如何自定义分页视图?(Pagination示例)  非常酷的网站设计制作软件,酷培ai教育官方网站?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  如何在橙子建站上传落地页?操作指南详解  EditPlus中的正则表达式 实战(4)  LinuxCD持续部署教程_自动发布与回滚机制  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  如何在七牛云存储上搭建网站并设置自定义域名?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何快速生成专业多端适配建站电话?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何实现API资源集合?(Resource Collection教程)  EditPlus中的正则表达式 实战(2)  公司门户网站制作流程,华为官网怎么做?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  微信小程序 require机制详解及实例代码  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何使用Gate和Policy进行授权?(权限控制)  Internet Explorer官网直接进入 IE浏览器在线体验版网址  微信小程序 wx.uploadFile无法上传解决办法  Python文本处理实践_日志清洗解析【指导】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何在服务器上配置二级域名建站?  Laravel如何实现用户密码重置功能?(完整流程代码)  如何快速选择适合个人网站的云服务器配置?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  音乐网站服务器如何优化API响应速度?