最近,Phil Haack等人在Twitter上发布消息称CodePlex已经支持Mercurial作为分布式版本控制系统(DVCS),我想这值得一看。
作为目前个人项目使用SVN并在办公室使用TFS的人,Mercurial在可用性方面如何比较?功能有哪些,有哪些更好的Mercurial托管服务可供选择?
最近,Phil Haack等人在Twitter上发布消息称CodePlex已经支持Mercurial作为分布式版本控制系统(DVCS),我想这值得一看。
作为目前个人项目使用SVN并在办公室使用TFS的人,Mercurial在可用性方面如何比较?功能有哪些,有哪些更好的Mercurial托管服务可供选择?
与Git相比,谷歌最近根据他们的评估,对Git和Mercurial进行了有趣的比较:http://code.google.com/p/support/wiki/DVCSAnalysis
相比于我最近再次使用的SVN,Mercurial真是太棒了。它给了我一种“为什么还有人会使用SVN”的感觉。虽然SVN很不错,但Mercurial确实更好用。
对于个人项目,我毫不犹豫地会转向一个分布式版本控制系统(DVCS)。它做的事情和SVN一样,但效率更高,速度更快。学习曲线只需要理解一些术语。
实际上,SVN和DVCS之间的区别在于每个人都有一个完整的工作库存在自己的系统中。如果你决定有一个“主服务器”,那么它与你拥有的完全相同,只不过设置为不断地通过网络提供服务而已。要同步这些版本库之间的更改,只需发送/接收(push/pull)这些更改即可。
也许只是我个人的问题,但我使用Mercurial已经有六个月了,在专门使用SVN数年后,由于某些原因,它并不适合我的思维模式。我清楚自己在SVN中在做什么,如果出现问题,我几乎总是知道如何解决。从概念上讲,我对Mercurial没有任何问题 - 例如,我喜欢拥有存储库的本地副本 - 但实际上,我总是会丢失一些东西。我认为这可能是因为在SVN中合并是相当重要的事情,而在Hg中则是正常的事情。我想要更多地控制我的合并。在SVN中,哪些变更集先于哪些变更集总是很清楚的,但Mercurial似乎缺乏这方面的功能。即使是TortoiseHg在视觉上非常好,但似乎也没有足够的机会看到正在合并的内容。
在Google的比较中未提及的一点是Git似乎要快得多。Mercurial看起来足够快(至少对于小项目),但无论项目大小,Git都是异常迅速的。
SVN拥有许多第三方工具的支持,包括IDE和缺陷跟踪系统等,其中还包括相当不错的TortoiseSVN。
大多数开发者过去都使用过SVN,因此在团队中让新开发者适应SVN更快。
对于您来说,这种事情的重要性如何,只有您自己能够决定。