我已经使用过Windows上的Git (msysGit) 一段时间了,并且我喜欢分布式源代码控制的理念。最近,我开始看Mercurial (hg),它看起来很有趣。然而,我无法理解hg和git之间的区别。
是否有人进行过git和hg的对比?我想知道hg和git之间的区别,而不必卷入支持者讨论。
我已经使用过Windows上的Git (msysGit) 一段时间了,并且我喜欢分布式源代码控制的理念。最近,我开始看Mercurial (hg),它看起来很有趣。然而,我无法理解hg和git之间的区别。
是否有人进行过git和hg的对比?我想知道hg和git之间的区别,而不必卷入支持者讨论。
没有区别,它们都能完成相同的任务,性能几乎相同。唯一选择其中一个的原因是你要参与的项目已经使用了其中一个。
另一个可能的选择原因是应用程序或服务只支持其中一个系统。例如,我选择学习git主要是因为github。
在versioncontrolblog网站上有一个动态比较图表,您可以比较几种不同的版本控制系统。
dir-a/foo.c
重命名为 dir-b/foo.c
并继续在 dir-b/foo.c
上工作,那么您对 dir-a/foo.c
的工作将在拉取后与我的工作正确合并。 - Martin Geisler你的项目中有基于Windows的协作者吗?
如果有的话,Git-for-Windows GUI 看起来很笨拙、困难和不友好。
相比之下,Mercurial-on-Windows 就是一个易于使用的选择。
需要注意的一点是,bitbucket.org的mercurial和github的git之间有一个区别,那就是mercurial可以拥有任意数量的私有仓库,而github则需要升级到付费账户才能使用。因此,我选择了使用mercurial的bitbucket。
我目前正在从SVN迁移到DVCS(同时记录我的发现,这是我第一次真正的博客努力...),并进行了一些研究(=谷歌)。就我所知,两种软件包都可以完成大部分工作。看起来git有更多或更好的高级功能, 我觉得mercurial与TortoiseHg在Windows集成方面稍微好一些。我知道也有Git Cheetah(我都试过),但是mercurial解决方案感觉更加健壮。
考虑到它们都是开源的(对吗?),我不认为任何一种缺少重要功能。如果某些功能很重要,人们会要求它,人们会编写它。
我认为,对于常见的操作,Git和Mercurial已经足够了。它们都有使用它们的大型项目(Git-> Linux内核,Mercurial-> Mozilla基金会项目,当然还有其他项目),因此我不认为任何一种缺少什么。
话虽如此,我对其他人对此的看法很感兴趣,因为这将成为我博客努力的重要来源;-)
我知道这不是答案的一部分,但就此而言,我认为像NetBeans和Eclipse这样的平台稳定插件的可用性也在选择哪个工具更合适于任务方面发挥了作用,或者说,哪个工具最适合“你”。也就是说,除非你真的想通过CLI方式完成。
Eclipse(以及基于它的所有内容)和NetBeans有时会出现远程文件系统(例如SSH)和文件的外部更新问题;这是选择任何您想要无缝工作的原因之一。
我现在也正在尝试回答自己的这个问题..并将候选项简化为Git或Mercurial..感谢大家在这个话题上提供有用的输入而不会变得极端。