Google Code最近选择了Mercurial而非Git作为其系统。在他们的分析中,他们发现Mercurial: 具有更易学习的曲线 拥有良好的Windows支持 更易于维护 在HTTP上运行速度更快 详见http://code.google.com/p/support/wiki/DVCSAnalysis
请记住,Git和Mercurial都是DVCS(分布式版本控制),这与中央VCS非常不同。请参阅核心概念 SO问题以获取差异。否则,您还可以参考Eric Weblog,在那里“Git是Wesley Snipes。Mercurial是Denzel Washington” ;)我选择了Bazaar和Git来获得经验。但如果我选择DVCS作为常规用户,我会选择Mercurial。[...] 人们钦佩Denzel Washington。但Wesley Snipes更有趣。就个人而言,我认为Git在分支和存储库克隆方面更直观,但Hg在Windows上的支持更好(尽管我对msysgit非常满意)另请参见“Git和Mercurial之间的区别” SO问题,特别是: “Git是MacGyver,Mercurial是James Bond” ;)
两者都非常健壮和多才多艺。看看同事和上游项目使用的是什么,因为使用相同的版本控制系统可以更容易地进行协作。作为一个开源开发者,你不可避免地会接触到所有常用的版本控制系统。查看各种项目选择的系统可能会有所帮助。Python、Mozilla、OpenJDK是Mercurial用户。许多较小的项目在Web领域中使用Git,当然如果你正在做内核相关工作,你将想要使用Git。我在我的软件项目中使用Git,并且还对其健壮性、可用性、分支合并的简便性等方面感到非常满意,同时也用它来对我的文档进行版本控制。Mercurial(我个人经验有限)具有更好的可移植性(例如Windows)。
GitHub最近发布了Hg-Git的beta版本,旨在无缝地连接这两个版本控制系统:这是Mercurial的Hg-Git插件,添加了从Hg推送到和拉取来自Git服务器仓库的功能。这意味着您可以从Hg协作Git项目,或者使用Git服务器作为一个团队的协作点,其中开发人员同时使用Git和Hg。由于Mercurial和Git都具有强大的后端数据存储,我认为这两个竞争的版本控制系统之间的界限在不久的将来将变得非常模糊。
说实话,我对Git的经验有限,对Hg更是一无所知,但每次使用svn、perforce等工具时,我都会想念一个漂亮的低整数版本号,可以向其他开发人员报告。除此之外,Git非常棒;它简化了分支,我经常使用,并且可以离线使用,在我的笔记本电脑上开发时非常方便。另外,Github = 太棒了。
我还没有使用过这两个,但我希望这些链接可能会有用: http://www.rockstarprogrammer.org/post/2008/apr/06/differences-between-mercurial-and-git/ http://www.infoq.com/articles/dvcs-guide