Git和Hg版本控制系统的优缺点是什么?

3

我现在可以选择版本控制系统,所以我想从有经验的开发人员那里获得一些意见。他们用过这些系统。 我应该使用哪一个,并在什么情况下使用?


可能是Mercurial和Git有什么区别?的重复问题。 - nawfal
6个回答

10

Google Code最近选择了Mercurial而非Git作为其系统。在他们的分析中,他们发现Mercurial:

  • 具有更易学习的曲线
  • 拥有良好的Windows支持
  • 更易于维护
  • 在HTTP上运行速度更快

详见http://code.google.com/p/support/wiki/DVCSAnalysis


相当奇怪,考虑到Google代码是由SVN团队监督的。 - mP.
我相信有人认为Google的分析内容已经过时了。 - sybreon
2
我认为最后一个参数是决定性的(更快的HTTP,但需要在远程端安装Mercurial)。 - Jakub Narębski
1
还有一个事实是Hg使用Python架构。这加上Hg的无状态HTTP,使其更接近于Google的架构。简而言之,这意味着Hg易于实现高性能的Google。这也意味着Google选择Hg的论点可能与你选择Hg而不是Git无关。 - Wernight
Google Code现在支持git,还支持svn和Hg。这说明了一些东西。可能是关于用户需求的某些信息,我猜想他们是否有使用统计数据? - Bob Kerns

6
请记住,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” ;)

1
“更好的Windows支持”是什么意思?正如你所说,msysgit运行得非常好,还有TortoiseGit。 - Wernight

2
两者都非常健壮和多才多艺。看看同事和上游项目使用的是什么,因为使用相同的版本控制系统可以更容易地进行协作。
作为一个开源开发者,你不可避免地会接触到所有常用的版本控制系统。查看各种项目选择的系统可能会有所帮助。Python、Mozilla、OpenJDK是Mercurial用户。许多较小的项目在Web领域中使用Git,当然如果你正在做内核相关工作,你将想要使用Git。
我在我的软件项目中使用Git,并且还对其健壮性、可用性、分支合并的简便性等方面感到非常满意,同时也用它来对我的文档进行版本控制。
Mercurial(我个人经验有限)具有更好的可移植性(例如Windows)。

除了Linux内核外,Ruby on Rails和Perl也使用Git。 - Joshua Partogi

2
GitHub最近发布了Hg-Git的beta版本,旨在无缝地连接这两个版本控制系统:
这是Mercurial的Hg-Git插件,添加了从Hg推送到和拉取来自Git服务器仓库的功能。这意味着您可以从Hg协作Git项目,或者使用Git服务器作为一个团队的协作点,其中开发人员同时使用Git和Hg。
由于Mercurial和Git都具有强大的后端数据存储,我认为这两个竞争的版本控制系统之间的界限在不久的将来将变得非常模糊。

0
说实话,我对Git的经验有限,对Hg更是一无所知,但每次使用svn、perforce等工具时,我都会想念一个漂亮的低整数版本号,可以向其他开发人员报告。
除此之外,Git非常棒;它简化了分支,我经常使用,并且可以离线使用,在我的笔记本电脑上开发时非常方便。
另外,Github = 太棒了。

只需至少正确标记一次,并使用 git describe - Dustin

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接