几个分布式vcs比较

 

最近,比较了一下git, bazaar(bzr), mercurial(hg)这几个分布式版本管理系统。

git

有人说git跨平台做得不好(对windows支持不好),所以不如bzr和hg。不过照我的使用来看,我觉得git 在windows上比bzr和hg都好用。git自带了一个tcl/tk做的git gui,虽然不是说最方便的,但是使用说我觉得已经够用了,界面和本地界面看起来也差不多(没想到tk做界面也能做得这么native)。再加上git gui在各个平台的操作一样的,学习成本也下去了。

另外,git的本地分支能力太强大了,让人不得不服。用git来做经常性的临时branch,其它哪一个也赶不上它的十分之一。

bzr

bzr的跨平台能力不错(得益于python的跨平台),不过bzr的gui目前没有特别好的,windows上好像也有TortoiseBzr,不过不知道有没有TortoiseSvn好用,另外,其它平台上的gui目前都不很成熟。

bzr支持的开发方式很多,支持分布式,也有办法支持类似于cvs/svn那样的方式开发,这样一来,使用方法必须会复杂。我感觉bzr的所有使用 方法加起来比git还复杂。bzr没有本地分支能力,要建一个branch就必须clone一份出来,这一点有点像svn了,肯定不如git方便的。虽然 bzr也有共享repo可以支持多个branch使用同一个仓库,不过本地复本还是要每个branch占用一份空间,这样一来对于硬盘的使用比git大多 了。加上bzr是这三个vcs中最慢的,现在的项目使用bzr的越来越少了。

hg

hg的跨平台能力也不错(也是python写的),效率上来说虽然是python写的,但是比bzr的效率高,接近于 git的速度。hg的gui也不很实用,windows上有TortoiseHg,使用挺方便,不过其它平台比较缺少,有也不是很方便,而且目前没有发现 跨平台的gui实现,这样每个平台都要学习一个新的gui用法,太麻烦了点吧。

hg使用上比bzr方便,不过它的本地分支也不如git方便,一般的开始是跟bzr一样,使用clone来建立branch的。虽然hg也支持 branch建立和git类似的分支,不过hg的branch不是临时branch,一旦建立就很难删除。所以一般只用hg的branch来建立 release之类的分支,少用来进行临时branch开发。目前使用hg的开源软件有增多的趋势。

总结

很多人因为git的命令太多,使用复杂而喜欢hg。不过我个人更喜欢git一些,主要是喜欢它各个平台一致的gui和方便的本地branch能力。

和svn的比较

比起svn来说,感觉分布式版本管理确实方便些。svn的服务器配置还是有些复杂,不像分布式vcs这样即装即用。不过svn的帐户管理能力比dvcs强,企业来说还是使用svn方便。dvcs目前对开源软件开发比较方便,对于企业开发的支持还是弱了点。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页