软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试管理>>配置管理>>正文
使用Subversion进行版本控制
文章出处:网络 作者: 发布时间:2006-11-23
    版本控制是管理数据变更的一种技术。对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。

    Subversion 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。 许多人会把版本控制系統想像成某种 “时光机器”。

    某些版本控制系統也是 SCM(software configuration management) 系统。 这些系統是特別设计来管理大量代码的, 而且具有许多专门针对软件开发的功能,像通俗易懂的程序语言, 或是提供编译软件的工作。 不过 Subversion 并不是这样的系统; 它是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。


    早在2000年,CollabNet, Inc.(http://www.collab.net)就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个更好的解决方案。不幸的是,至少在免费license中,因为没有更好的选择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去处CVS的bug和不好的特性。

    在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。

    当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。

    Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。

    经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自行管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。

    从启动这个项目到现在,虽然CollabNet提供了大部分的资金(它付出几位全职 Subversion 开发人员的薪水), 但这还是个开源项目, 由一组松散透明的规则所约定。 CollabNet 拥有代码的版权完全符合 Debian Free Software Guidelines。 换句话说, 每个人都可以随意地免费下载、修改、以及重新发布 Subversion; 完全不需要经过 CollabNet, 或是任何人的允许。

站内搜索
相关文章
◎软件配置管理工具Vss6.0实用指南(5)
◎软件配置管理工具Vss6.0实用指南(4)
◎软件配置管理工具Vss6.0实用指南(3)
◎软件配置管理工具 Vss 6.0实用指南(2)
◎软件配置管理工具 Vss 6.0实用指南(1)
◎Linux与Windows CVS服务器配置与使用(4)
◎Linux与Windows CVS服务器配置与使用(3)
◎Linux与Windows CVS服务器配置与使用(2)
◎Linux与Windows CVS服务器配置与使用(1)
◎cvs客户端大全
◎简述软件配置管理
◎如何配置软件测试环境
◎软件配置管理与SourceSafe使用指南
◎并行版本系统CVS简单教程
◎软件配置管理实施的若干问题研究
◎配置管理的流程
◎配置管理中的角色和分工
◎软件配置管理与SourceSafe使用指南
◎软件配置管理(SCM)简介
◎linux下面安装cvs的方法
◎软件配置管理与ClearCase
◎配置管理中人的因素
◎配置管理—实施软件质量管理的关键
◎软件配置管理基础
◎SCM 与垃圾清理工的比较
◎配置管理——实施软件质量管理的关键
◎统一变更管理的力量
◎解析本土化软件配置管理
◎统一变更管理的威力
◎第三代配置管理解决方案: 统一变更管理(UCM)
◎ClearCase LT 的使用心得(二)
◎ClearCase LT 的使用心得(一)
◎每日构造与冒烟测试
◎软件配置管理过程及其关键活动
◎大型本地化软件测试的配置管理
◎实战每晚构建(下)
◎实战每晚构建(中)
◎实战每晚构建(上)
◎VSS使用手册
◎软件配置管理:软件项目管理先行军
◎做好软件项目的配置管理
热门文章
◎VSS使用手册
◎软件配置管理与SourceSafe使用指南
◎软件配置管理过程及其关键活动
◎做好软件项目的配置管理
◎配置管理的流程
◎软件配置管理基础
◎软件配置管理(SCM)简介
◎每日构造与冒烟测试
◎软件配置管理与SourceSafe使用指南
◎并行版本系统CVS简单教程
◎实战每晚构建(上)
◎如何配置软件测试环境
◎软件配置管理与ClearCase
◎ClearCase LT 的使用心得(一)
◎配置管理中的角色和分工
◎linux下面安装cvs的方法
◎实战每晚构建(中)
◎软件配置管理:软件项目管理先行军
◎配置管理—实施软件质量管理的关键
◎第三代配置管理解决方案: 统一变更管理(UCM)
◎配置管理——实施软件质量管理的关键
◎ClearCase LT 的使用心得(二)
◎解析本土化软件配置管理
◎软件配置管理实施的若干问题研究
◎简述软件配置管理
◎配置管理中人的因素
◎大型本地化软件测试的配置管理
◎WinCVS与CVSNT简明使用手则(一)
◎软件配置管理工具Vss6.0实用指南(5)
◎实战每晚构建(下)
◎软件配置管理工具 Vss 6.0实用指南(2)
◎SCM 与垃圾清理工的比较
◎统一变更管理的力量
◎Linux与Windows CVS服务器配置与使用(1)
◎软件配置管理工具 Vss 6.0实用指南(1)
◎统一变更管理的威力
◎WinCVS与CVSNT简明使用手则(二)
◎cvs客户端大全
◎WinCVS与CVSNT简明使用手则(三)
◎WinCVS与CVSNT简明使用手则(四)
◎如何做大规模软件的配置管理
◎软件配置管理工具Vss6.0实用指南(3)
◎Linux与Windows CVS服务器配置与使用(4)
◎软件配置管理工具Vss6.0实用指南(4)
◎Linux与Windows CVS服务器配置与使用(3)
◎Linux与Windows CVS服务器配置与使用(2)

Google提供的广告