svn可视化工具_文档管理、配置管理工具(二)

913dd43fc22c5cb92db33ed3712ad6ec.png

基于上一篇中提到的常用配置管理工具,现在详细说一下各自适用的场景及特点:

SVN

SVN是Subversion的简称,是一个开放源代码的版本控制系统,此工具是在CVS的基础上,由CollabNet提供开发的,SVN是集中式版本控制之王,也是目前在国内软件企业中适用最为普遍的配置管理工具。

SVNA服务器有两种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。SVN的优点:

  • 支持重命名,这对Java开发来说非常重要。为了得到更好的代码,开发中需要经常进行重构,重构就经常涉及到文件的重构名,而重构名CVS中是不被支持的
  • 开发的时候不一定要锁定。一方面导致重构不方便,另一方面,不能离线开发,使用SVN就不同,可以的带回家继续开发,回来后,提交就行了
  • 多平台。可以支持多个平台下的操作
  • 更好地客户端支持。一个在Windows下用的SVN客户端TortoiseSVN比较方便使用
  • 更好地与外围工具集成。各种各样的外围工具(主要是服务器端),满足多种需要。如果有需要,也可以自己写插件或管理脚本,开放的架构,允许我们这样做。
  • 方便。一个例子:部署应用的时候,以前的做法是找出一个项目中修改过的文件,更新到服务器上去,可以再服务器上执行svn export命令,把代码库中的最新版本导出,完成部署(也可以替换回老版本)
  • 速度与稳定性看起来都不错

CC(ClearCase)

ClearCase是IBM Rational公司的旗舰产品之一,是全球领先的软件配置管理工具,它广泛应用于众多的企业级软件工程实践之中,用友众多的企业级用户。CC提供C/S和B/S两种架构的配置管理解决方案,提供了全面的软件配置管理功能。

CC的特点如下:

  • 独有的存储库VOB(Version Object Bases)
  • 可视化的文件版本树
  • 并行开发
  • 版本历史记录
  • 自动的比较和版本间的合并
  • 工作空间管理

CC是集中式版本控制工具,是SCM管理工具其中的一种。是RATIONAL公司开发的配置管理工具,类似于VSS,CVS的作用,但是功能比VSS,CVS强大得多,而且可以与Windows资源管理器集成使用,并且还可以与很多开发工具集成在一起使用,但是对配置管理员的要求较高,安装比Windows还大,运行比蜗牛还慢,能用CC的一般是世界500强。

GIT

GIT是一个开源分布式版本控制工具,GIT最初由Linus Torvalds编写,用于Linux内核开发的版本控制工具。GIT与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流及其方便。GIT速度很快,这对于诸如Linex kernel这样的大项目来说自然很重要,GIT在国外已经非常普及,国内并未普及(在慢慢普及),越来越多的开源项目已经转移到GIT。

GIT主要优势有:

  • 更方便的Merge。分布式管理必然导致大量的Branch和Merge操作。因此分布式版本控制系统都特别注意这方面。在传统的CVS里面制作Branch和Merge简直就是噩梦,Subversion作为一个用于替代CVS的系统,专门改进了Branch操作。然而人们似乎没有注意到,Branch是轻松了,可是Merge呢?如果不能很方便地Merge回来,做Branch仍然是噩梦。事实上,我就经历过在开发团队里面由于对于操作不对而在Merge的时候把我的许多代码都覆盖掉了。当时正是使用的subversion。虽然源代码仍然在历史里面,但是要去一个一个地找出被覆盖掉的文件并恢复过来确实是一件很难忘的事情。
  • 更方便的管理。传统版本控制系统使用中央仓库,一些仓库相关的管理就只能在仓库上进行。赋予开发团队每一个人中央仓库的管理权限是非常不好的。但是有时候确实会比较不方便的地方。
  • 更健壮的系统。分布式系统一般情况下总比单服务端的系统要健壮,因为当服务器端一旦挂掉了,整个系统就不能运行了。然而分布式系统通常不会因为一两个节点而受影响。
  • 对网络的依赖性更低。虽然现在网络非常普及,但是并不是随时随地都有告诉网络,甚至有时候根本没有网络可以访问。低速的网络往往会让人心情烦躁,有时候就呆呆地盯着屏幕上的commit速度,什么事情也干不了。而没有网络连接是更致命的:你无法commit!这表示你进行任何改动以前都必须小心翼翼,否则你可能再也找不回你曾经写的一段代码了。
  • 更少的“仓库污染”。有时候你要做一个模块,它不是太大,所以没有必要为它新建一个branch,但是它又不是那么小,不可能一次提交就做好。于是就会提交一些不完整的代码到仓库,有时候会导致整个程序无法运行,严重影响团队里其他人的开发。大多数人在这种情况下的解决办法都是写完之后再提交。但是作为习惯了版本控制的人来说,进行不计后果的大幅修改时经常的事情,到后来突然发现自己先前的代码没有提交,就后悔莫及了。如果是分布式系统的话就不会存在这样的问题,因为本地仓库的修改不会影响到别人的仓库。当你完成并测试以后,就可以再邮件里面说:我已经把这个模块做好了。然后感兴趣的人就可以从你这里pull你的成果了。

GIT和SVN比较

  • 在很多情况下,GIT的速度远比SVN快
  • SVN是集中式管理,GIT是分布式管理,分布式和集中式最大的区别在于:在分布式下,本地有个代码仓库,开发者可以再本地提交;而集中式版本控制,只有在服务器才有一个代码仓库,只能在服务器进行统一管理
  • SVN使用分支比较笨拙,GIT可以轻松拥有无限个分支
  • SVN必须联网才能正常工作,GIT支持本地版本控制工作
  • 旧版本的SVN会在每一个目录放置一个.svn,GIT只会在根目录拥有一个.git

又分享了一段,最近看书觉得里面的内容真的挺有帮助的,不知不觉就能扩大认知范围,希望能够与更多的人来分享这些习得有益的知识。感谢~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值