版本控制与SVN介绍

什么是版本控制

“版本控制”这个词对于学工程的人员来说可能有些陌生,但“版本”一定在日常工作中经常遇到。每次新规范发布,设计软件就会紧接着发布符合新版规范的软件版本;发给施工单位的图纸都要在图签栏里标注日期以区分不同的版本;一个项目的设计过程中要绘制扩大初步设计图、施工图、竣工图等,这其实也可以说是项目设计资料的不同版本。那么什么是“版本控制”呢?读者可以回想一下自己工作中是如何整理和归档这些和版本有关的电子文件的,每个人的具体方法可能不一样,这个管理过程其实就是一种版本控制。

对于经常对软件改来改去的程序员来说,版本控制早已是一个必不可少的工管理工具。版本控制工具可以帮助程序员实现以下功能:

(1)保存任意一个文件的不同版本。

(2)记录文件的修改者和修改原因。

(3)当两个用户同时修改一个文件时,尽可能自动合并修改;若无法合并,则给出提示。

(4)比较不同版本之间或版本与本地副本之间的差异。

(5)获取最新版本的文件,并允许随时退回到所保存的任意版本。

(6)访问控制,阻止未经授权的修改和查阅。

简单地说,即是帮助用户管理、记录文件的全生命周期内的所有修改信息(如下图),而且可以随时追溯,如同一个拥有一台神奇的“时间机器”。这正是版本控制工具在软件开发领域的价值体现,但一个优秀版本控制工具将不仅仅局限于软件开发领域,由于其可以管理和控制任意二进制文件,原则上讲它可以应于所有计算机易变信息的管理。笔者在工作中一直使用版本控制软件来管理自己和团队的项目文件,感觉受益非浅,特在此将使用经验分享给大家。

image


版本控制的工具软件

目前著名的版本控制软件很多,笔者在此重点介绍一下其中一个开源的软件:Subversion。

Subversion是一个自由、开源的版本控制系统,在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里,这个版本库就像一个文件服务器,不同的是,它可以记录每一次文件和目录的修改信息,用户可以将数据恢复到以前的任何版本,并查看数据更改的细节。Subversion的版本库也可以通过网络访问,用户可以在不同的电脑里进行操作,这样多个用户可以共同维护同一个版本库,促进团队协作。Subversion是一个通用的系统,可以管理任何类型的文件,你不仅可以管理文本类型程序代码,还可以管理二进制的图形文件(*.dwg)、计算书(*.doc或*.docx)或其它。


参考

1.版本控制Wiki

2.http://subversion.tigris.org/

3.阳万安,李彦.通用版本控制系统的研究和设计 [J].计算机工程,2008,34(12): 283-285.