版本控制软件

版本控制是在软件开发过程中保证技术状态一致的一种手段,它是开发过程中进行全面管理的基础。在《版本控制软件的应用优势》一文中,我们能看到在软件的开发过程中应用版本控制软件所带来的好处,那么有哪些版本控制软件能够满足众开发者的需求呢?今天就为大家介绍几款版本控制软件的功能特点,供大家了解。

1、Visual SourceSafe(简称:VSS)

VSS是一种版本控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。还提供了还原点使开发人员能够回滚或撤销任何对应用程序的修改。VSS与Visual Studio的充分集成,成为了独立开发人员和小型开发团队所适合的工具。作为版本控制系统,Visual SourceSafe能够:

  • 组内合作:在缺省情况下,同一个源文件在某一时间只允许一个用户修改,可防止文件被意外改动或覆盖。
  • 版本追踪:对源代码和其他文件进行存储和早期追踪,从而实现早期版本的回滚。
  • 跨平台开发
  • 模块化代码追踪

2、SourceAnywhere

SourceAnywhere系列是由Dynamsoft公司开发的,有三个产品,SourceAnyWhere for VSSSourceAnyWhere StandaloneSourceAnyWhere Hosted。其中SourceAnyWhere Standalone是一个基于SQL的版本控制软件,它是用来接替VSS的一款工具软件。它具有很好的安全性、可测量性以及可靠性。SourceAnyWhere 的具体功能如下:

  • 多数据库支持
  • IDE集成功能
  • Web部署
  • 本地远程访问权限
  • Delta Transfer技术
  • Cache Server缓存机制
  • 内置128位SSL和Blowfish加密术
  • 数据加密功能通过对您数据库中的文件的内容加密来保证您数据库的安全。
  • 提供VSS导入工具确保从SourceSafe进行简单和直接的数据迁移

3、Concurrent Version System(简称CVS)

 CVS是一款简单易用、功能强大、跨平台的免费版本控制软件,它是一款典型的Server/Client端软件。

CVS功能介绍:

  • 代码统一管理,保存所有文件的修改记录。方便查看新增或删除的文件;跟踪修改记录,随意回滚到以前任意版本。
  • 完善的冲突解决方案,无需借助其他的文件比较工具和手工的粘贴复制。
  • 代码权限管理。可为不同的用户设置不同的权限,提供了相应的功能扩展接口,以便实现个性化功能。
  • 支持版本发布和分支功能。

4、StarTeam

StarTeam是一款集合了版本控制、构建管理和缺陷跟踪系统为一体的软件,属于高端管理工具,在易用性,功能和安全性方面略微逊色于其他版本控制软件。它的所有操作都通过GUI完成,同时还支持命令集方式。StarTeam除具有VSS和CVS的功能外,还拥有一下功能:

  • 对数据库的变更管理
  • 流程定制工具
  • 实现了用户管理和目录文件ACL控制
  • 访问控制灵活并且系统

5、Subversion(简称SVN)

SVN是一款跨平台版本控制软件,拥有自己的版本资料库,允许用户在不同空间和时间上修改和管理同一组数据,从而使开发进程非常快速。软件产品的所有版本都会被存入库中,避免由于错误影响产品质量。

SVN作为一款通用的版本控制系统,它具有以下功能:

  • 大部分CVS功能
  • 目录版本化
  • 实现版本的复制、删除和重命名
  • 自由的版本化数据操作
  • 混合追踪
  • 文件锁
  • 独立进程模式

结语:

看完以上这5种时下最流行的版本控制软件后,是否有种眼花缭乱的感觉?其实再优秀的版本控制工具都只是软件开发过程中的一部分,一个软件项目的成功涉及到了优秀工具的应用和开发人员管理等等因素。但选择一款优秀的合适的版本控制工具能够提高工作效率和代码的质量。

 

 

版本控制发展史

 

下面是版本管理器的进化图,这张图上分成了四个时期:

史前时期:1982年的RCS。现在你可能还能在Unix的发布包中找到它。

古典时期:1990年的CVS(经典的SCM管理器,可惜不能track目录和文件名的改变,今天这个东西已经过时了),1985年的PVCS,1992年的clearcase(价格贵,功能复杂,当然,今天也有很多公司在用),微软的VSS(Welcome to Hell),90年代中期的Perforce(P4,这个工具今天都还在被广泛地使用,尤其是那些中等大小却有着大量开发团队的公司,现在是Google 内部最大的代码管理器)。

中世纪时期SVN(Linus很不喜欢SVN,2006年引入了Git),AccuRev(强力支持branch和merge,其扮演了一个很重要角色帮助社区脱离clearcase和CVS),

文艺复兴时期:BitKeeper——Sun的内部管理工具,Linux的内核代码2002年也用这个工具,其实,很多开源工程都在用这个工具,2005年这个工具的东家BitMover对大家对BitKeeper逆向工程很不满,于是停止支持开源,于是出现了Git

Git的第一个版本是Linux之父Linus Torvalds亲手操刀设计和实现的(据说只用了一个周末),Linus不仅仅给出一个原始设计(简单的、干净的、天才的),同时,他也用自己那独一无二的风格催生了这个项目(请参看: http://codicesoftware.blogspot.com/2007/05/linus-torvalds-on-git-and-scm.html 还是被墙)。

在Linus介绍Git的著名的演讲中,他强烈地批评(好吧,应该算是侮辱)了CVS,SVN,和Perforce:“Subversion是史上 最毫无意义的项目,从项目开始就是这样了”,“如果你喜欢CVS,那么你现在应该在某个精神病研究中心或是别的地方”,“别在用Preforce了,它是 十分糟糕和可悲的,这绝对绝对是真的”。无论是反对还是喜欢,Linus的确是改变了历史——中世纪已经过去了,现在的世界由分布式系统主宰,以及消除 branch和merge的恐惧。

Git 基于 DAG 结构 (Directed Acyclic Graph),其运行起来相当的快。在Git发布后的来年,世界上所有的大型的开源项目全部从Subversion迁移到了Git上,www.github.com真是很大,这可能是这具星球上最强大最牛最酷的SCM系统了。Git可能并不是最简单的,但它一定会是未来十年的主流。(有空读读这本书——Git Internals

Mercurial (Hg) 第一次出现在2005年4月,也是因为BitKeeper不免费了。Hg可以和Git在一起使用,见:http://mercurial.selenic.com/wiki/HgGit。但是Hg和Git在设计上不一样,他们对提交/变更的概念是一样的,只不过Git用tree来实现,而Hg则是用扁平的文件和目录来实现(revlog),设计细节可参看:http://mercurial.selenic.com/wiki/Design和 http://mercurial.selenic.com/wiki/DeveloperInfo

Darcs (Darcs Advanced Revision Control System)是另一个让你摆脱Subversion和CVS的工具,2002年开始,今年是2.5版。它的优势是性能,以及他与众不同的历史版本管理 ——管理patches而不是snapshot(提交/修改),当然,这样一来,历史改变看上去很不好懂。

Bazaar (bzr) 是另一个开源的 DVCS,它试图给SCM的世界里带来一些新的东西。其由Canonical开发(Ubuntu的那个公司),在2008年成为GNU。

Plastic在2006年出现,强力地支持branch和merge,其还提供了强大的图示,包括3D的版本树,Plastic主要是为了让中等开发团队使用,介于大型的团队(ClearCase)和小型的团队(Subversion)之间。

Team Foundation Server (TFS),微软的新一代SCM工具,主要是为了VSS的失败负责,但是他还不是版本管理上还是很强,只不过,他集成了一大堆各种各样的工具,比如:issue tracking,test management等。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值