族谱网 头条 人物百科

版本控制

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:577
转发:0
评论:0
概述通过文档控制(documentationcontrol),能记录任何工程项目内各个模块的改动历程,并为每次改动编上序号。一种简单的版本控制形式如下:赋给图的初版一个版本等级“A”。当做了第一次改变后,版本等级改为“B”,以此类推。最简单的例子是,最初的版本指定为“1”,当做了改变之后,版本编号增加为“2”,以此类推。借此,版本控制能提供项目的设计者,将设计恢复到之前任一状态的选择权,这种选择权在设计过程进入死胡同时特别重要。理论上所有的信息记录都可以加上版本控制,在过去的实务中,除了软件开发的流程,其它的领域中很少有使用较复杂的版本控制技巧与工具(虽然可能为其带来许多好处)。目前已有人开始用版本控制软件来管理CAD电子文件,电路板设计,来补足本来由人手工运行的传统版本控制。软件版本控制软件设计师常会利用版本控制来追踪、维护源码、文件以及配置文件等等的改动,并且提供控制这些改动控制权的程...

概述

通过文档控制(documentation control),能记录任何工程项目内各个模块的改动历程,并为每次改动编上序号。

一种简单的版本控制形式如下:赋给图的初版一个版本等级“A”。当做了第一次改变后,版本等级改为“B”,以此类推。最简单的例子是,最初的版本指定为“1”,当做了改变之后,版本编号增加为“2”,以此类推。

借此,版本控制能提供项目的设计者,将设计恢复到之前任一状态的选择权,这种选择权在设计过程进入死胡同时特别重要。

理论上所有的信息记录都可以加上版本控制,在过去的实务中,除了软件开发的流程,其它的领域中很少有使用较复杂的版本控制技巧与工具(虽然可能为其带来许多好处)。目前已有人开始用版本控制软件来管理CAD电子文件,电路板设计,来补足本来由人手工运行的传统版本控制。

软件版本控制

软件设计师常会利用版本控制来追踪、维护源码、文件以及配置文件等等的改动,并且提供控制这些改动控制权的程序。

在最简单的情况下,软件设计师可以自己保留一个程序的许多不同版本,并且为它们做适当的编号。这种简单的方法已被用在很多大型的软件项目中。该方法虽然可行,但不够有效率。除了必须同时维护很多几乎一样的源码备分外;而且极度依赖软件设计师的自我修养与开发纪律,但这却常是导致错误发生的原因。

有时候,一个程序同时存有两个以上的版本也有其必要性,例如:在一个为了部署的版本中程序错误已经被修正、但没有加入新功能;在另一个开发版本则有新的功能正在开发、也有新的错误待解决,这使得同时间需要不同的版本并修改。

此外,为了找出只存在于某一特定版本中(为了修正了某些问题、或新加功能所导致)的程序错误、或找出程序错误出现的版本,软件除错者也必须借由比对不同版本的代码以找出问题的位置。

软件版本的控制方法

最简单的版本控制就是保留软件不同版本的数份copy,并且适当编号。许多大型开发案都是使用这种简单技巧。虽然这种方法能用,但是很没效率。一是因为保存的数份copy几乎完全一样,也因为这种方法要高度依靠开发者的自我纪律,而常导致错误。因此,有人开发出了将部分或全部版本控制工作自动化的版本控制系统。

差分编码

大部分的 版本控制 软件采用差分编码:只保留文件相继版本之间的差异,这个方法可以更有效的存储数个版本的文件。

中央式系统与分布式系统

大部分的软件开发案,会有好几个开发人员同时工作。如果两个人员同时要改变同一个文件,而没有管理访问权限,很可能会改写彼此的工作。

所以权限管理控制系统会在两种方法中择一解决:采用中央式系统,由中央权威管理访问权限;或是像分布式系统容许多个单位同时进行,包括同时更动同一文件。

传统上版本控制系统都是采用中央式系统:所有版本控制的工作在一个服务器进行,由中央权威管理访问权限“锁上”文件库中的文件,一次只让一个开发者工作。

2000年后,TeamWare、BitKeeper、和GNU开始用分布式系统:开发者直接在各自的本地文件库工作,并容许多个开发者同时更动同一文件,而各个文件库有另一个合并各个改变的功能。这个方式让开发者能不靠网络也能继续工作,也让开发者有充分的版本控制能力,而不需经中央权威许可。分布式系统仍然可以有文件上锁功能。

分布式系统Linux内核的发明人林纳斯·托瓦兹就是分布式版本控制系统的支持者,他开发了目前被开源社区广泛使用的分布式版本控制系统Git。

文件上锁

文件上锁功能能对高难度的合并(例如大幅更改大文件或文件群的许多部分)提供一些保护,但其他开发者仍然可以绕过版本控制系统改变文件(这本身就是很大的问题)。所以文件上锁功能带来的功效与副作用一直饱受争议。

其他功能

有些进步的版本控制工具提供更多功能,例如:

管理谁能改变程序的哪个部位,

提供某一个人控制权来审查哪些改变可以过关;

与开发环境集成。

维基百科用的MediaWiki也有版本控制的功能。

术语

著名的版本控制软件

BitKeeper

CVS(Concurrent Versions System)

Micorosoft Visual SourceSafe/Team Foundation Server/Visual Studio Online

Perforce

Rational ClearCase

RCS(GNU Revision Control System)

Serena Dimention

Subversion

SVK

Git

Monotone (软件)

Bazaar (software) ( 英语 : Bazaar (software) )

Mercurial

SourceGear Vault ( 英语 : SourceGear Vault )

注:多数不提供中文语言界面包(一部分本身即基于命令行接口),一部分对中文没有有很好的支持,处理中文时有乱码。但一般选用支持UNICODE的软件时,CJK便不成问题。

参看

SCM

MEE ( 英语 : MEE )

计算机支持的协同工作

协作版本系统

版本控制软件列表( List of revision control software ( 英语 : List of revision control software ) )

Software version

Related information


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 维护版本
次要版本号的示例KDE在一次发布中使用了不常使用的版本号"3.0.5a",因为缺乏版本号可以使用。当时,KDE3.1的开发工作已经开始,而版本协调者使用了像是3.0.5这样的版本号,3.0.6则是KDE内部用于标记即将到来的3.1版的开发版本号。但在3.0.3发布后,数个预料之外且重大的程序错误必须先行修复(从3.0.4开始),但因为3.0.5的版本号已经用掉了,却又仍有程序错误需要修复,从而导致了版本号的冲突。较近期的KDE发布周期已将开发中的版本标记为较大的修订版本号(例如3.1.95)来避免这个问题。参见补丁软件版本号软件版本周期小数点版本
· 小数点版本
参见补丁软件版本号软件版本周期维护版本服务包
· 社会控制
相关条目社会控制理论
· 控制器
参见模控学自动控制伺服机构反馈冷媒参考文献GeneF.Franklin,J.D.Powell,andAbbasEmani-Naeini,FeedbackControlofDynamicSystems,4thed.,2002.
· 控制棒
工作原理在链式反应中,由于每次核裂变释放出的中子数量大于一个,因此若对链式反应不加以控制,同时发生的核裂变量目将在极短时间内以几何级数形式增长。若聚集在一起的重核原子足够多,将会瞬间释放大量的能量。如果不加以控制,反应堆可能会发生反应堆熔毁的事故。反应堆中有专门的设备收放控制棒,控制棒在一定情况下可以手动收放。控制控制棒与反应棒之间的相对距离,即控制棒的吸收面积,可以控制反应堆的反应速率。材料选择组成控制棒的材料需要有足够高的中子俘获截面,包括银、铟和镉,或硼、钴、铪、镝、钆、钐、铒和铕,或其合金及化合物,例如:高硼钢、银铟镉合金、碳化硼、二硼化锆、二硼化钛、二硼化铪、钛酸钆和钛酸镝。影响材料的选择的因素有反应堆中的中子能量,和所需的机械性能和使用寿命。这些中子吸收材料可以以颗粒或粉末填充在不锈钢管中。在中子辐射可能导致控制棒的变形,导致其过早更换。裂变产生的放射性同位素也影响控制棒的寿命...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信