笔者有幸接触过以下几种常用的配置管理工具:VSS、SVN、Clearcase,在此做一个小小的总结,并Ctrl+C了以前一些网友的对比评论,不一定准确,只是希望通过这些总结对自己和初学者有所帮助。如果想进一步了解这些工具,请baidu和google,如果想深入了解,敬请到图书馆借书并实践。

一、 Visual Source Safe( 简称 VSS )

VSS是微软的产品,是配置管理的一种很好的入门级的工具。VSS最初的名字叫Source Safe,是一家小公司的产品,92年曾经获了最佳小型管理工具奖,然后立即被微软收购。但是微软收购的只是source safe的Windows版本,在美国还有另外两家公司分别获得了继续开发和销售source safe的Mac版本和Unix版本的许可,在MS买进vss之后,基本上没有对vss进行任何的研发,MS内部自身也不用vss。

SourceSafe长得很象早先土气的文件管理器,的确难看。但是难看不碍事,SourceSafe的优点可以用8个字来概括“简单易用,一学就会”,这个优点是它老妈Microsoft遗传下来的,是天生的。虽然SourceSafe并不是免费的,但是在国内人们以接近于零的成本得到它,网上到处可以下载啊。当然Microsoft也不在乎这个小不点的软件,它属于“买大件送小件”的角色。如果你合法地得到Visual Studio,你就得到了免费的SourceSafe。

评价如下:

易用性:★★★★★

易学易用是 VSS 的强项, VSS 采用标准的 windows 操作界面,只要对微软的产品熟悉,就能很快上手。 VSS 的安装和配置非常简单,对于该产品,不需要外部的培训(可以为公司省去一笔不菲的费用)。只要参考微软完备的随机文档,就可以很快的用到实际的工程当中。

功能:★★★

VSS 的配置管理的功能比较基本,提供文件的版本跟踪功能,对于 build 和基线的管理, VSS 的打标签的功能可以提供支持。 VSS 提供 share (共享 ) 、 branch( 分支)和合并( merge) 的功能,对于团队的开发进行支持。 VSS 不提供对流程的管理功能,如对变更的流程进行控制。 VSS 不能提供对异地团队开发的支持。此外 VSS 只能在 windows 平台上运行,不能运行在其他操作系统上。

安全性:★★★

VSS 的安全性不高,对于 VSS 的用户,可以在文件夹上设置不可读,可读,可读 / 写 , 可完全控制四级权限。但由于 VSS 的文件夹是要完全共享给用户后,用户才能进入,所以用户对 VSS 的文件夹都可以删除。这一点也是 VSS 的一个比较大的缺点。

总体成本:★★★★

VSS 没有采用对许可证进行收费的方式,只要安装了 VSS ,对用户的数目是没有限制的。因此使用 VSS 的费用是较低的。

技术支持:★★★★★

由于 VSS 是微软的产品,可以得到稳定的技术支持。

二、 SVN(Subversion) - CVS(Concurrent Version System)的替代和升级版本

先说说CVS,CVS是开源代码的配置管理工具,其源代码和安装文件都可以免费下载。记得在学校读研的时候,学校实验室的代码全部都用CVS管理,为啥?很简单,两个字:免费!它与Eclipse配合,基本上Java的代码编写,代码管理和版本管理都可以“免费”搞定了。

SVN(Subversion)是近年来崛起的版本管理工具,被誉为cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。虽然在 2006年时SVN的使用族群仍然远少于传统的CVS,但已经有许多开放源码团体决定将CVS转换为SVN。已经转换使用SVN的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及许多团体。许多开发团队换用SVN是因为 Trac、SourceForge、CollabNet、CodeBeamer等专案协同作业软件以及Eclipse、NetBeans等IDE提供SVN的支援整合。 除此之外,一些自由软件开发的协作网如SourceForge.NET除了提供CVS外,现在也提供专案开发者使用SVN作为原码管理系统,JavaForge、Google Code以及 BountySource 则以SVN作为官方的源码管理系统。2009年,绝大多数CVS服务已经改用SVN。CVS已经停止维护。

易用性 : ★★★★

Subversion支持Linux和windows,更多是安装在linux下。svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。目前业界评价的SVN易用性正在提高。

功能:★★★★

SVN 的功能除具备 VSS 的功能外,还具有:

它的客户机 / 服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码;它的无限制的版本管理检出 (checkout :注 1)的模式避免了通常的因为排它检出模式而引起的人工冲突;它的客户端工具可以在绝大多数的平台上使用。同样, SVN 也不提供对变更流程的自动管理功能。

安全性:★★★★

一般来说, SVN 的权限设置单一,无法完成复杂的权限控制;但是 SVN 通过 SVN ROOT 目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。

总体成本:★★★★★

SVN 是开发源码软件,无需支付购买费用。

技术支持:★★★

同样因为 SVN 是开发源码软件,没有生产厂家为其提供技术的支持。如发现问题,通常只能靠自己查找网上的资料进行解决。

三、 ClearCase

Rational公司的ClearCase是软件行业公认的功能最强大、价格最昂贵的配置管理软件。

ClearCase主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。ClearCase通过TCP/IP来连接客户端和服务器。另外,ClearCase拥有的浮动License可以跨越UNIX和 Windows NT平台被共享。

ClearCase的功能比CVS、SourceSafe强大得多,但是其用户量却远不如CVS、SourceSafe的多。主要原因是:ClearCase价格昂贵,如果没有批量折扣的话,每个License大约5000美元。对于中国用户而言,这无疑是天价。用户只有经过几天的培训后(费用同样很昂贵),才能正常使用ClearCase。如果不参加培训的话,用户基本上不可能无师自通。

易用性:★★★

ClearCase 的安装和维护远比 VSS 复杂,要成为一个合格的 ClearCase 的系统管理员,需要接收专门的培训。 ClearCase 提供命令行和图形界面的操作方式,但从 ClearCase 的图形界面不能实现命令行的所有功能。如果Unix/Linux服务器上安装了Samba服务,可以直接通过Windows下Clearcase的客户端直接访问源代码,相对比较简单。

功能:★★★★★

ClearCase 提供 VSS, SVN所支持的功能,但不提供变更管理的功能。 Rational 另提供了 ClearQuest 工具提供对变更管理的功能,与 VSS不同, ClearCase 后台的数据库是专有的结构。 ClearCase 对于 windows 和 unix 平台都提供支持。 ClearCase 通过多点复制支持多个服务器和多个点的可扩展性,并擅长设置复杂的开发过程。

安全性:★★★★

ClearCase 的权限设置功能与 SVN 相比, SVN 有独立的安全管理机制, ClearCase 没有专用的安全性管理机制,依赖于操作系统。

总体成本:★★

要选用 ClearCase ,需要考虑的费用除购买 license 的费用外,还有必不可少的技术服务费用,没有 Rational 公司的专门的技术服务,很难发挥出 ClearCase 的威力。如现在网上虽有 ClearCase 的破解软件,但尝试应用的公司大多失败的缘故。另外,对于 web 访问的支持,对于变更管理的支持功能都要另行购买相应的软件。

技术支持:★★★★★

Rational 公司已被 IBM 公司收购,所以有可靠的售后服务保证。

四、总结

工具对比一览表

特性 VSS SVN ClearCase

易用性 ★★★★ ★★★ ★★★

功能 ★★★ ★★★★ ★★★★★

安全性 ★★★ ★★★★ ★★★★

总体成本 ★★★★ ★★ ★★★★★

技术支持 ★★★★ ★★★ ★★★★★

以上几种工具的总结如下:

  1. VSS 的使用简便易学,但 VSS 的功能和安全性较弱,且只对 windows 平台进行支持,建议作为项目配置管理的入门时采用的工具;

  2. SVN 的安全性和版本管理功能较强,可以实现异地开发的支持,但 SVN 安装和使用多采用命令行方式,学习曲线高,同时不提供对变更管理的功能,对于小型团队,可以采用 SVN 进行管理。

  3. ClearCase 功能完善,安全性好,可以支持复杂的管理,但学习曲线和学习成本高,需要集成 ClearQuest 才能完成完整的配置管理功能。大公司如果采用异地多研发中心同时开发的模式,一般推荐使用ClearCase。

代码版本管理工具介绍相关推荐

  1. Git 代码版本管理工具详解 进厂必备

    目录 前言 Git 概述 什么是版本控制? 为什么需要版本控制? 版本控制工具 集中式 分布式 Git 工作机制 Git安装 Git 常用命令(部分) 初始化本地库 设置用户签名 初始化本地库 查看本 ...

  2. coverity代码检测工具介绍_微服务测试之静态代码扫描

    静态代码扫描为整个发展组织增加价值.无论您在开发组织中发挥的作用如何,静态代码扫描解决方案都具有附加价值,拥有软件开发中所需要的尖端功能,最大限度地提高质量并管理软件产品中的风险. 背景 微服务架构模 ...

  3. 代码版本管理工具Git

    Git 的发展历史 在做一个项目工程的时候,代码总是不断地更新,于是你就可能一边写代码,一边就为你的代码创建了很多的版本文件夹,分别叫"项目 0.1"."项目 0.2&q ...

  4. 静态代码分析工具列表--常用静态代码分析工具介绍

    代码检测简介 本文是一个静态代码分析工具的清单,但是为公司产品需要付费使用.共有37个公司,有些公司包含多个工具.其中27个公司有多语言 工具,1个公司为PHP工具.2个公司为.NET工具.1个公司为 ...

  5. 版本管理工具介绍—Git篇

    一.版本管理工具作用 主要讲解了git在各平台的安装和基本使用,Git能够帮助我们解决文件的提交.检出.回溯历史.冲突解决.多人协作模式等问题,并且大大提升我们的工作效率. 版本管理工具是干什么的? ...

  6. coverity代码检测工具介绍_Coverity代码扫描工具

    1.说明:Coverity代码扫描工具可以扫描java,C/C++等语言,可以和jenkins联动,不过就是要收钱,jenkins上的插件可以用,免费的,适用于小的java项目 2.这是Coverit ...

  7. coverity代码检测工具介绍_兴业证券:静态代码检测最佳实践

    一. 引言 谷歌发布的代码规范中指出,80% 的缺失是由 20% 的代码所引起的.规范的代码可以消除过于强烈的个人风格,有助于代码在项目间高效的流转:提升代码的正确性,降低低级问题产生的可能性:同时也 ...

  8. 谷歌java安卓代码检查工具,Android Studio 代码检查工具介绍

    前言 利用好相关代码检查工具,是一种自我的CodeReview,可以有效降低Bug率,提升自我的代码优化意识.常用的代码检查工具有AndroidStudio 自带的Lint工具. Alibaba Ja ...

  9. 代码版本管理 GitLab介绍

    一.前言 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目. 它拥有与 Github 类似的功 ...

最新文章

  1. 有向连通图增加多少边构成强联通(hdu3836,poj1236)
  2. Allegro 17.4设置中文界面
  3. Yii的查询后缀限定
  4. ubuntu16.04安装evo
  5. java155apk_【原创】浅谈 Android APK定点爆破
  6. servlet 规范_Tomcat原理解析(壹)— Servlet
  7. 【kafka】produce response correlation id xxx on topic-partition retrying Error: NETWORK_EXCEPTION
  8. 董耀祖:云原生是趋势,多云、边缘云也变得很热
  9. Excel文件内容比对 -- Java Apache Poi
  10. 2022.06青少年软件编程(Python)等级考试试卷(四级)
  11. 1068 万绿丛中一点红
  12. 解决Windows10关闭UAC后,开机启动项不生效的问题
  13. delphi fastreport4 安装
  14. 一 ROS基础教程
  15. 将 EGL 代码与 DXGI 和 Direct3D 进行比较
  16. 关于清理电脑系统垃圾的batch文件
  17. 使用docker搭建sqli-lab环境以及upload-labs环境 xss挑战之旅环境 搭建vulhub环境
  18. I.MX6ULL ARM驱动开发---设备树下的platfrom设备驱动
  19. ESP32 开发之旅③ Ticker——定时库
  20. C语言 栈的链表实现

热门文章

  1. Linux-PXE高效批量网络装机!超详细的实验步骤+超详细的理论!(可跟做!新手都能做起来)
  2. macOS10.14.3 gem更新和用法详解
  3. C#图片缩小剪切方法
  4. Ajax总结【博学谷学习记录】超强总结,用心分享
  5. [博学谷学习记录]超强总结,用心分享|架构 敏捷 - 开发管理之道
  6. 微服务/API前端开发时代之 BFF 速学入门教程
  7. 近50年数据库技术发展史
  8. 电脑上的滑动弹幕记单词小工具实现
  9. Python教程:字典的setdefault() 和get()方法比较
  10. 《征战武林》技术支持