CSDN博客

img wode_dream

SVN是什么

发表于2008/10/3 16:07:00  13404人阅读

什么是Subversion?
Subversion是一个免费的、开放源码的版本控制系统。就是说,Subversion管理随时改动的文件和目录。文件树被放在一个中央资料库(Repository)中。这个资料库象一个普通的文件服务器,但是它可以记录文件和目录的每次改动。它允许你恢复以前旧版本的数据,或者检查数据变化的历史。因此,很多人把版本控制系统看成某种“时光机”。

Subversion允许通过网络访问它的资料库,因而可以被位于不同计算机前的人们同时使用。在某种程度上,允许人们从自己的地方修改和管理同一组数据有助于促进相互间的合作。由于不再受任何修改都必须通过单一渠道来进行的限制,改进可以更快的实施。而且因为工作被本化了,你不必担心取消限制会导致工作质量下降。如果对数据作了不正确的改动,只要撤销就行了。

一些版本控制系统也是软件配置管理(SCM)系统。这些系统针对管理程序源代码特别定制,有很多专用于软件开发的功能。比如,系统可以理解编程语言或者支持软件构建工具。然而Subversion不是这样的系统。它是一个通用的系统,可以用来管理任何文件集合。对你来说可能是源代码,对别人来说,可能是从购物清单到数字影像的混合,或更多别的文件
Subversion 的历史
在2000年初,CollabNet公司开始寻找开发人员写一个CVS的代替品。CollabNet供应一个称作SourceCast的协作软件包,其中一个组件是版本控制。虽然SourceCast使用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时受到的束缚已经让Jim开始仔细思考管理版本化数据的更好的路子。他不仅已经起好了名字“Subversion”,而且有了Subvesion资料库的基本设计。当CollabNet打来电话时,Karl立刻同意为这个项目工作。Jim征的得他的老板RedHat Software的同意,让他投入这个项目,而且没有时间限制。CollabNet雇用了Karl和Ben Collins-Sussman,从5月份开始详细设计。由于Greg Stein 和CollabNet的Brian Behlendorf 和Jason Robbins 作了恰当的推动,Subversion很快吸引了一个活跃的开发人员社区。这说明了许多人有相同的受制于CVS的经验,他们对终于有机会对它做点什么表示欢迎。

最初的设计团队设定了几个简单的目标。他们并不想在版本控制方法论上有新突破。他们只想修补CVS。他们决定Subversion应该与CVS相似,保留相同的开发模型,但不复制CVS最明显的缺点。虽然它不一定是CVS的完全的替代品,它应该和CVS足够象,从而任何CVS用户可以不费什么力气的转换过来。

经过14个月的编码,在2001年8月31号,Subversion 可以“自我寄生”了。就是说,Subversion开发人员停止使用CVS管理Subversion的源代码,开始使用Subversion代替。

虽然CollabNet发起了这个项目,而且仍然支助一大部分的工作(它为一些专职的Subversion开发人员发薪水)。但是Subversoin象大部分开放源码的项目一样运作,由一个松散透明,鼓励能者多劳的规则管理。CollabNet的版权许可证和Debian FSG完全兼容。换句话说,任何人可以免费下载,修改,按自己的意愿从新分发Subversion,而不必得到来自CollabNet或其他任何人的许可。

 

阅读全文
1 0

相关文章推荐

img
取 消
img