|
Svc与Cvs版本控制?之Subversion
版本控制是管理信息变化的艺术。对于经常对软件改来改去的程序员来说,它早就是重要的工具。但是版本控制软件的价值已远远超出软件开发的领域。总是可以看到人们使用计算机管理易变的信息,这正是版本控制的生存之道,也是Subversion表演的舞台。
本章综述了Subversion的基本情况—什么是Subversion?Subversion能做什么?从哪里能获得
Subversion是什么?
Subversion是一个自由/开源的版本控制系统。也就是说,在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。于是我们就可以籍此将数据回复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。
某些版本控制系统本身也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。对你来说,这些文件这可能是源程序—而对别人,则可能是一个货物清单或者是数字电影。
早在2000 年,CollabNet, Inc. (http://www.collab.net) 开始寻找CVS 替代产品的开发人员,CollabNet 提供了一个协作软件套件CEE (CollabNet Enterprise Edition),它的一个组件
是版本控制系统。尽管CEE 在初始时使用CVS 作为其版本控制系统,但是CVS 的局限性在一开始就很明显,CollabNet 知道迟早要找到一个更好的替代品。遗憾的是,CVS成为了开源世界事
实上的标准,因为没有更好的产品,至少是没有可以自由使用的。所以CollabNet 决定写一个新的版本控制系统,建立在CVS 思想之上的,但是修正其错误和不合理的特性。
2000 年2 月,他们联系Open Source Development with CVS(Coriolis, 1999)的作者Karl Fogel,并且询问他是否希望为这个新项目工作,巧合的是,当时Karl 正在与朋友Jim Blandy 讨
论设计一个新的版本控制系统。在1995 年,他们两个曾经开办一个提供CVS支持的公司Cyclic Software,尽管他们最终卖掉了公司,但还是天天使用CVS 进行日常工作,在使用CVS 时的挫
折最终促使他们认真地去考虑如何管理标记版本的数据,而且他们当时不仅仅提出了“Subversion”这个名字,并且做出了Subversion 版本库的基础设计。所以当CollabNet 提出邀请的时
候,Karl 马上同意为这个项目工作,同时Jim 也得到了他的雇主,RedHat 软件赞助他到这个项目并提供了一个宽松的时间。CollabNet 雇佣了Karl 和Ben Collins Sussman,详细的设计从
三月开始,在Behlendorf 、CollabNet、Jason Robbins 和 Greg Stein(当时是一个独立开发者,活跃在WebDAV/DeltaV 系统规范阶段)的恰当激励的帮助下,Subversion 很快吸引了许多
活跃的开发者,结果是许多有CVS 经验的人们很乐于有机会为这个项目做些事情。
最初的设计小组固定在简单的目标上,他们不想在版本控制方法学中开垦处女地,他们只是希望修正CVS,他们决定Subversion 匹配CVS 的特性,保留相同的开发模型,但不复制CVS 明显的
缺陷。尽管它不需要成为CVS 的继任者,它也应该与CVS 保持足够的相似性,使得CVS 用户可以轻松的做出转换。
经过14 个月的编码,2001 年8 月31 日,Subversion 自己能够“成为服务”了,开发者停止使用CVS 保存Subversion 的代码,而使用Subversion 本身。
当CollabNet 开始这个项目的时候,曾经资助了大量的工作(它为全职的Subversion 开发者提供薪水),Subversion 像许多开源项目一样,被一些激励知识界精英的宽松透明的规则支配着
。CollabNet 的版权许可证完全符合Debian 的自由软件方针,也就是说,任何人可以自由的下载,修改和重新发布,不需要经过CollabNet 或其他人的允许。
(阅读次数:)
|