01
2013
02

版本控制与SVN介绍

什么是版本控制

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

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

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

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

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

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

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

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

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

image

...

15
2008
11

清除SVN版本库中特定文件的方法

  团队共同维护一个SVN版本库时,有时会不知不觉地将一些无用的文件提交到版本库中,如果这些无用的“垃圾”文件是很大的二进制文件时,SVN版本库的大小将会迅速膨胀,给版本库备份带来麻烦。为此,偶通过搜索找到了一种清理版本库的方法,要用到Subversion的命令,如下:

  假定,偶已经在”E:\Repositories\”目录建立了一个名为mydata的版本库,想清除库中的无用文件位置为“/documents/计算书.doc”。

(1)先用”dump”命令将整个版本库输出成标准格式。

svnadmin dump E:\Repositories\mydata > E:\temp\mydata.dump

(2)然后,用以下命令对输出的标准格式进行过滤处理,并生成新的文件。

type E:\temp\mydata.dump | svndumpfilter exclude /documents/计算书.doc > E:\temp\mydata_new.dump

...

13
2008
08

用VisualSVN实现多人协同版本控制环境的架设

  用TortoiseSVN在本机进行版本控制有一段时间了,深觉其功能的强大和文件管理理念的先进。近日,由于项目需要开始尝试在局域网内架设多人的协同版本控制环境,刚开始选用了局域网数据库共享的模式,连接速度还可以,不过要求放置数据库的机器对数据库文件夹进行共享,且由于局域网用户中的系统机器名很乱,不易进行人员名称和权限管理。后来在Subversion的官方网站上找到了一个能够快速架设基于Apache的服务器的软件——VisualSVN Server,很好地解决偶的问题。

  这个软件安装包只有6M大小,包含了Subversin、Apache和一个管理平台(如下图),安装后进行管理平台即可控制版本控制服务的开启和关闭,最方便的是它可以自己控制用户及权限,支持加密的https协议。

...

  使用时,将自己版本库拷到VisualSVN Server指定的数据库根目录(默认是:D:\Repositories\)就可以了。需要注意的是,置于数据库根目录的版本库文件夹不可以用中文,否则VisualSVN Server将无法识别。

链接:VisualSVN Server官方 | 下载使用帮助(En)

...

«1»