商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

选择开源版本控制工具的理由

作者:佚名  2007-12-25

【IT168 技术评论】

    什么是版本控制工具呢?版本控制系统一向被视为程序员的专有工具,因为程序开发中的代码变更,是经常出现和反复的。实际上版本控制工具应用范围远远超出软件开发领域,任何用计算机管理的经常变更的资料,版本控制系统都可以派上用场。
    CVS和Subversion(简称SVN)是开源软件通用的版本控制工具。CVS有着30年以上的时间的考验,SVN是CVS理想的替代者。Linux的开创者Linus 就把Linux的成功归因于CVS。近年来尤其是SVN在1.1版之后,使用FSFS文本数据库替代BDB作为版本控制系统服务端数据格式后,大有超越CVS之势。SourceForge也于2006年初,将SVN作为托管项目的另外一个选择。
    反观商业软件,版本控制工具大战也是如火如荼。但是无一例外,版本控制的商业软件无一不是以花哨的用户界面为噱头,以数据库(甚至加密数据库)为服务器端数据引擎,以目录、文件名可版本控制为卖点。
    不用拿Subversion,就算是拿没有目录版本控制功能的CVS来和商业的版本控制工具相比,我们也有充足的选择开源版本控制工具的理由:
 
    服务器端是否和客户端一样看起来很美?
        我们了解到的一些商业软件,服务器端简直就像是一个垃圾场:用流水号命名的文件名,一个目录下动辄成千上万个文件,……

    服务器端是否在使用数据库来作版本控制的数据引擎?
        为了支持目录的版本控制工具,大多数商业软件选择了一个最为简单和直接的解决方案:数据库。用数据库将文件名和版本库对应。但是引入数据库,服务器的稳定性、可维护性大大下降,成为管理员的噩梦。增量备份计划难以实现,不知道什么时候会出现数据库崩溃,……

    是否支持到其他版本控制系统的迁移?
        对于商业软件,这个答案是否定的。如果允许将版本库导出到其他版本控制系统,简直就是将自己好不容易积累的客户拱手相让。因此在这种逻辑下,购买了商业版本控制工具,基本上等同于遭到了绑架,……

    可否定制?是否可以对提交说明(Commit Log)进行检查?可否每一次的提交事件能够收到邮件通知?
        CVS的CVSROOT脚本扩展,以及Sun的Hooks钩子脚本,可以让用户充分发挥想像的空间。而商业版本控制工具,有此功能的寥寥,……

    客户端是如何状态保持的?
        熟悉CVS和SVN的用户应该知道工作目录下的CVS和.svn隐含目录的作用,就是用于记录版本控制状态信息的。而很多商业软件并没有这个机制,而是靠服务器端来维护此记录:哪台主机,检出哪个版本的代码,存储到哪个目录。这么做的一个弊病,就是工作目录不能自由在硬盘中移动,系统重装导致的状态丢失……

    成本因素
        一是软件采购成本。商业的版本控制工具动辄十几万美金,而且是和用户数目挂钩的。而产品质量,正如上面分析的那样……
        二是学习成本。商业的版本控制工具的部署范围非常有限,您不能保证新员工一定熟悉该系统,但是如果选择开源的版本控制工具,那么员工的培训费,您可能就可以省下了。

    您确认软件中没有木马、间谍软件吗?
        您肯定不会去购买你竞争对手开发的版本控制工具,那么您为什么还会相信其他闭源的版本控制工具呢?

1
【内容导航】
第1页: 第1页
©版权所有。未经许可,不得转载。
[责任编辑:李倩]
[an error occurred while processing this directive]