针对.NET开发人员的Git与Mercurial?

时间:2009-09-30 06:35:04

标签: .net git mercurial dvcs

我一直想知道.NET开发人员更好的DVCS是什么?从阅读各种信息来看,Mercurial在Windows上的效果更好,但其他信息声称Git在提供高质量的Windows和Visual Studio工具方面已经赶上并超越了Mercurial。有没有人在.NET开发环境中尝试这两种方面都有良好的最新信息或经验?

7 个答案:

答案 0 :(得分:24)

我一直在使用Mercurial进行.NET开发一年多,而且它一直很好用。我承认我不使用任何花哨的工具(资源管理器附加组件和Visual Studio工具),但它们是可用的(例如TortoiseHg)。我发现使用命令行工具同样简单 - 只需在.hgignore中指定一些通配符(如在Blaenk's answer中),你就可以了。

我不确定git与hg的集成程度如何,但对于反向过程,我过去使用过hg-git并且工作正常。然而,随着新版hg的问世,它仍然有些不稳定。

所以你应该能够使用mercurial的github,对于原生的mercurial repos,总是有(imo)同样好的bitbucket.org。编辑:另请注意,codeplex专注于.NET开源项目,现在提供Git和Mercurial存储库。

我应该提到“受欢迎程度”是您选择的一个非常困难的标准。 DVCS都是备受瞩目的用户。当然,Git有linux内核,而值得注意的hg用户包括mozilla和Python项目。

编辑:因为这似乎得到了定期的支持。我上面写的所有内容在写作时都是正确的,但我不再同意我以前的自我bitbucket和GitHub一样好。 GitHub具有更好的功能,从我的角度来看(主要是F#开源开发),其他人都在那里,所以你可以获得更好的网络效果。我将我的所有项目从codeplex / bitbucket移到了GitHub,并立即开始获得贡献,而在codeplex / bitbucket上几乎没有发生任何事情。

答案 1 :(得分:8)

我认为,鉴于git的指数性人气增长,git对windows的良好支持(类似于subversion的类似tortoiseSVN )必然会到来,这只是一个时间问题。似乎最受欢迎的两个项目是msysgitTortoiseGit(也使用msysgit),类似于tortoiseSVN。 git一直在变得越来越流行,如果你遇到任何现在不太可能发生的问题,并且随着windows上的git工具的进一步发展变得更加不可能,你将能够更容易地找到修复程序的用户群。

与此同时,我发现this series指南非常有帮助。

您可能遇到的问题可能是忽略某些文件,如果您查找如何使用.gitignore这应该很容易,这非常简单,这是该系列提到的文件和通配符列表:

obj
bin
_ReSharper.*
*.csproj.user
*.resharper.user
*.resharper
*.suo
*.cache
*~
*.swp

此外,我也看到了有关线路结尾的一些问题。为此,您需要查看this question

答案 2 :(得分:8)

在撰写本文时,我在不同的项目中使用了TortoiseGitTortoiseHg(对于mercurial),主要是java和.net项目。我不得不说TortoiseHg处于领先地位,因为它更加稳定并且完全具备了两者的特色。

有一个Mercurial plugin for Visual Studio 2008,但我建议坚持使用TortoiseHg直到插件本身稳定。不确定与git的集成,但有一些关于VS here的插件的讨论。

答案 3 :(得分:4)

尽管git对于unix / linux用户来说是一个很好的吸引力,但对于Windows和.net用户来说,它已经越来越好了。但是,mercurial可能是两者之间更好的选择。与集中式开发不同,那里有很多选择,很少有“真正的”dvcs工具。据我所知,只有一个商业系统,塑料scm和前面提到的两个oss工具。我来自透明的一面,并拥有pvcs,p4和其他传统scm工具的经验。我绊倒塑料,也许通过这个网站,从我评估的,从视觉角度看似乎做得很好。如果你说的更像一个windows商店,它可能是塑料,mercurial和git的顺序。如果你是unix / linux,git可能是第一个合理的选择。希望这有帮助!

答案 4 :(得分:3)

Git和Mercurial都可以为.NET开发人员做得很好,但众所周知,Mercurial拥有更好的Windows支持。 另外,如果你考虑使用商业工具,为什么不看看Plastic SCM在Windows上阅读以下关于分布式开发的教程? http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html 更新现在,Plastic SCM有一个免费的社区版。

答案 5 :(得分:1)

我没有认真使用过Mercurial,但刚刚从Subversion切换到Git进行.NET开发。我正在使用的发行版是Git Extensions,它安装了标准(msys)Git,还有一个图形前端,一些Windows资源管理器集成和一个Visual Studio插件。它还附带了很好的文档。 Explorer集成不提供TortoiseSVN所做的文件图标上的整洁状态标记,但只是将要点添加到右键单击菜单中。所有这些工具都运行良好。

我发现的最大问题是Git要求您理解这些概念以获得良好的结果。 Git Extensions的图形界面只是Git工具上的薄壳,所以如果你在使用子模块,那么Git Extensions提供的工具都不能解决这个问题。不过,现在有很多关于Git在线的教程和视频。

默认情况下,Windows构建的Git将行结尾转换为CRLF;因为我们完全是一家MS商店,这对我们来说是正确的行为。

答案 6 :(得分:0)

Git有一个主要的优点,可以让使用VS(重命名检测)时生活更轻松,如果你只想使用命令行界面,在HG中你必须在VS中重命名文件时重命名文件,在Git中会检测到你无缝地重命名(它跟踪内容而不是文件),即使你在文件中做了一些更改,它也会检测到重命名。