(转)乱评 svn, git, hg, bzr by Dieken

乱评 svn, git, hg, bzr by Dieken

发信人: Dieken (风催草低 - 明月何尝不照人)
标  题: 乱评  svngit, hg, bzr
发信站: 水木社区 (Mon Mar  8 22:44:54 2010), 站内

以前有些小文说过,不记得放哪里了。

这年头,堪用的开源的 版本管理工具就三个:svn, git, hg,其它诸如
cvs,  vss, monotone, darcs, tla, bazaar (emacs 项目选择 bzr 真是猪头)
都靠边站:不堪大用——不要跟我抬杠“俺们 cvs 用了好多年了啊,用的
很顺手”“我个人一个小项目用 bzr 挺滋润的”之类的话。

subversion: 变更集、权限管理、TortoiseSVN 是其三大亮点。至于
文件名字空间跟分支、标签名字空间统一,有利有弊。 弊病是慢、
工作目录占空间、代码库很容易快速膨胀、分支的合并比较弱(分支
倒是非常好用)、svnsync 是个鸡肋。

致命的问题是不支持本地分支,在沐浴了 DVCS 中本地分支的优点后,
我现在强烈的感觉到不支持本地分支或类似特性的 VCS 是不人性的,
不合开发流程的。

如果项目不大(代码库小于 GB 量级),不想理解 DVCS 的理念,对权限
控制很看重,那么 svn 是唯一的选择。

git:  正是 git 让 DVCS 的理念普及开来,可能是借了 Linus 的名头,
git 的最大优点是特性极其丰富,非常可玩,而这也是它的最大缺点。
其它的一些缺点,比如对 Windows 支持落后、UI 有不少龌龊的地方、
权限控制薄弱(其实在 DVCS 里依赖社会关系管理权限,而非工具),
这些倒还不是大问题,大问题是对模块支持很弱,git submodule 不好用,
所以 android 项目搞了个 repo 工具,想法很好,但可惜不是 git 内置
功能,而且个人感觉由于为 android 项目定制,有点搞复杂了的意思。

相比 svn,git 代码库体积小(能小 50% 多,如果 svn 里分支用本地
文件拷贝 + svn add,那么 git 在体积上更占优势),git 工具速度
很快,对合并支持非常好,探测文件重命名的做法很独特,git-svn
很好用,分支很轻量级,设计思想很简洁(实现不简洁:-()。。。。

git 属于那种不熟悉时被它玩,熟悉时玩它溜溜转的类型。 如果不怎么
理 Windows 平台,代码很庞大,对合并要求很高,不惮理解 git 的原理
以及看手册,那么 git 是很好的选择。

hg:hg 是个奇迹,易用性堪比 svn,速度堪比 git,跨平台良好。
hg 据说对文件重命名、移动支持不大好(新版本可能改善了,没细用,
我是 git 的频繁用户),新版本支持类似 git 的轻量级分支(好像是
用 tag 模拟出来的),对模块支持有个 forrest 插件,不知道好用不。

hg 内置的特性远没有 git 多,但一般也够用了。

hg 被很多大型项目采用,可用性有保证,如果对跨平台开发很看重,对
工具易用性要求高,那么 hg 是很好的选择。

bazaar: 虽然是我比较喜欢的 Canonical 公司(Ubuntu Linux 的开发
公司)主持开发的,但我并不喜欢这个工具,速度慢,UI 挂着易用的
幌子引入不必要的复杂性,设计思想太弱(分支合并、版本命名、文件重命名、
移动跟 git 的做法比相当弱智),属于打着 DVCS 旗号但是没能完全
领会 DVCS 内涵搞出的一个伪 DVCS,代码库格式一再变换(开始模仿 git 的
存储方式了),效率还是低的不行,相比 git、hg 的基本稳定的代码库格式以及
高效,可见 bzr 开发人员只有小聪明没有大智慧(Linus 大神万岁,Matt 小神万岁!)


以上评论随口而出,极富个人感情色彩,本人不负责其客观公正真实可靠性,
仅供参考,一切选择请自行斟酌。

【 在 zhangmike (克强总~~~~~~~~~~~~~~理不是偶) 的大作中提到: 】
: Dieken可否总结下 git,svn等当前流行的source control工具的比较


转载自:http://www.newsmth.net/bbscon.php?bid=126&id=70031
配置管理之路(scmroad.com)-软件配置管理专业论坛
http://bbs.scmroad.com

TOP

发信人: laofo (偶是fofo), 信区: SoftEng
标  题: Re: 乱评 svn, git, hg, bzr
发信站: 水木社区 (Tue Mar  9 09:07:45 2010), 站内

        如果对于商业用户来说,集权管理是很必要,也是必须的。在知识产权越来越
        受到重视的同时,对代码的管理也越来越细化,明确,约束。

        比如,在公司里可能你做项目A,没有目的的把B,C,D的代码都下载下来的做法
        是很值得商榷的。甚至很多公司专门做工具对代码库的访问情况进行审查。

        svn 易学易用是其优势,但是随着体积的增加,访问速度慢真的是个问题.
        如果svn有一种廉价的分支合并机制也许会更好。不一定允许你本地分支,但是
        允许你在拥有权限的分支上自己做分支,有自己的工作流,可以选择性的提交到
        源中。

        git 功能做的再好,如果权限管理这块弱化也很难在商业领域有所突破。可能
        更适合开源,或者对保密要求没那么高的公司。业界,代码泄漏的问题不是一
        次两次了。

        看了你的评价反而看起来比较中庸的 hg 比较不错。虽然各方面做的都不是很
        好,但是该有的功能他都有。

        这里主流的应该还有比较重量级的Clearcase,TFS,Perforce等。

        Clearcase功能强大,但是很复杂,IBM现在又在推Jazz,把Clearcase,
        Clearquest,eclipse等都集成到 Jazz 的这个平台下,形成了一个功能很全的
        IDE

        TFS,微软的东西。可以看作是VSS的升级版,但是功能远比 VSS 强大。也是
        把研发,测试,构建等等都可以集成到 TFS 里边去了。很 IBM 的 jazz 平台
        有的一拼。


        Perforce 国内也很多客户,尤其一些游戏公司比较喜欢

        Starteam,MKS 日渐落寞,感觉用的公司不是很多。

        没有反驳的意思,只是说说我的观点,欢迎大家批评指正。
配置管理之路(scmroad.com)-软件配置管理专业论坛
http://bbs.scmroad.com

TOP

回复 2# laofo 的帖子

哈哈,明显你的回帖更靠谱……

Linux当年刚出道的时候,就曾针对MINIX的架构争论过操作系统内核的monolithic vs micro

即使在今天,我们公司一些没经验的售前还是会在这个问题上被竞争对手带到沟里去,悲哀啊

现在,同一个人又搞出了Git,再次针对集中/分布式版本控制的问题带头争论,快20年了,一点新意都没有
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值