Git vs Mercurial

网上文章都是抄来抄去
所以这两者的对比文章中误导成分也被扩大很多倍

关于无法clone子目录
有一篇常被引用的比较文章提到Mercurial的缺点是
“分支的时候不能对子目录进行clone.一次clone就是一个工程。”
而上面的Git没有提到相关问题
让人错觉Git没有这个问题
其实Git也是无法只针对一个子目录进行clone的
两者对同样这个问题的解决方案是
Git提供sub module的方法.在一个项目下加入子模块的概念
Mercurial提供sub repo,原理基本一致
Git使用单独的submodule指令来实现
Mercurial使用.hgsub文件来实现

关于学习曲线
Git指令和概念太多.学习曲线比较陡.
Murcurial的概念比较简单,指令很少,非常容易理解.

关于Windows下两者比较
我个人看法是如果你在Windows下使用cygwin很习惯,那git没问题
否则tortoiseGit与tortoiseHg来对比
绝对是tortoiseHg比较容易上手
而且安装包小很多.
Git光是msysgit装好就有一百多M
tortoiseHg的diff非常直观.annotate files比blame要好用.非常直观的可以看到每行属于哪个版本
而tortoiseGit的菜单与tortoiseSVN的基本一致,如果你很熟悉SVN,那么这个就很简单了

关于我的看法
国内真正掌握VCS的用法的团队可以说很少.
很多时候大家都是在用commit和update两个指令而已
而branch和merge,我估计一些开发人员到目前为止都没碰过
因为branch式的开发相当于让每个开发人员又多了一个merge的工作.
所以能不碰就不碰.很少有人用这个方式去开发.除非特别大的团队项目
在这种情况下
Mercurial就比Git要适合国情的多
因为大多数情况下.许多开发人员是想要一个无限制回滚的编辑器以及一个集中代码托管服务器而已
而这两点使用Mercurial就可以很好的完成
减轻很多学习成本

搬运自:http://hiadmin.com/?p=1616

posted @ 2011-12-06 14:00  闻香夜雨  阅读(970)  评论(0编辑  收藏  举报