Git还是Subversion?

时间:2009-02-19 16:25:32

标签: visual-studio svn git

假设我正在使用Visual Studio在家中启动一个新的Web项目,即哪个版本控制系统,即。 Git或Subversion会更好用吗?哪一个设置复杂度最低?

15 个答案:

答案 0 :(得分:39)

由于这是为了你自己的个人游戏,我的问题很简单:你知道Subversion还是Git?

  • 如果您了解SVN - 请使用Git。
  • 如果你认识Git - 请使用SVN。

如果你不知道 - 使用SVN。这是一个更好的介绍。

答案 1 :(得分:12)

我会和Git一起去。在基础知识上加快速度并不是那么糟糕(现在有很多好的资源,包括learn.github.com),并且它会在黑桃中得到回报。我一直在Vista上使用它,没有probs。

答案 2 :(得分:10)

根据我的经验,Subversion对Windows更友好,对单独的开发人员也更有用。

另一种可能性是Perforce,它对Windows不太友好,但功能齐全且易于使用,更不用说最多两个用户免费。

答案 3 :(得分:4)

Git是一个分布式源代码控制设置,因为您是唯一一个我无法想象您将从其功能中获益的用户。 Subversion(在我看来)更容易设置,所以我建议你去使用它。

答案 4 :(得分:4)

如果您单独工作并希望某种版本控制易于使用,那么请使用Subversion。它在Windows上运行良好,设置存储库只需右键单击一个空Tortoise SVNAnkh SVN提供了与Visual Studio的非常好的集成 - 几乎与TFS相同,只要您使用VS 2005或更新版本。

另一方面,Git比SVN更有前途。我会在今年检查一下,但是第三方工具尚未达到标准。

答案 5 :(得分:4)

我会选择Mercurial。它应该类似于Git(由于Windows问题,我永远无法运行),并且在Windows和Windows中非常容易设置。非常适合“个人”版本控制系统。

答案 6 :(得分:3)

您决定使用哪一项取决于您现在和未来的需求。 Git有一个非常好的社区,用GitHub构建它,非常适合共享代码和项目。 SVN很容易设置和开始,但在大型团队中,Git通过它的分支和合并来击败它。如果您有多个人在同一个项目上工作,无论是在办公室环境还是在团队分散的OSS意义上,这都是理想的选择。

如果您需要的是快速简单的设置和开始,那么您可以开始您的项目,SVN应该没问题。 SVN还集成到许多编辑器和IDE以及许多错误跟踪和持续集成系统中。

如果您打算组建团队,或者已经做过,Git值得关注其分支和合并设置。然而,Git很大程度上仍然是一种年轻人,并没有那么多的支持

答案 7 :(得分:2)

如果您想要Visual Studio集成,那么毫无疑问。只有Subversion具有Visual Studio集成(AnkhSVNVisualSVN和几个允许访问TortoiseSVN的脚本。)

Subversion为其编写了大量工具的最重要原因之一是它被设计为一个稳定的库供多个客户使用。

在git支持可用作某种可重用库之前,Git不太可能在Visual Studio中获得相同级别的集成。 (有libgit2计划可以实现这一目标。)

答案 8 :(得分:1)

让我来看看你的问题并问:

  1. Git可以在Windows上运行吗?
  2. 它有什么东西相当于Tortoise吗? (否则我不知道它在易用性方面如何与SVN竞争)
  3. 旁注:如果它真的是一个人的家庭项目,你真的不需要任何源代码控制工具。只需将您的项目放在DropBox文件夹中即可完成(自动提交,无限修订,取消删除)。 除非你真的认为你需要标签,分支和东西。但是对于个人住宅项目......你呢?

答案 9 :(得分:1)

阅读本文后,您可以发表自己的看法:http://whygitisbetterthanx.com

答案 10 :(得分:1)

Git ................................(这些点在那里是因为SO不会接受3个字母回答)

答案 11 :(得分:1)

这个问题的一个很好的答案是Jack Repenning最近在这里写的:

  • 如果您对作品的单个,某些主副本有强制要求,请使用Subversion。您可以使用Git执行此操作,只要没有滑动-UPS。但是你不能用Subversion做任何其他事情(滑倒或没有),像萨班斯 - 奥克斯利法这样的“引人注目的要求”对于保证而不是可能性更快乐。

  • 如果您计划保持同一产品的并行,大部分共享但永久性地不同,请使用Git。一个常见的例子:也许你有一个大产品,你为每个客户定制。自定义是永久性的,通常不在代码行之间共享,但大多数代码对所有代码都是通用的。 Git就是针对这种情况而设计的(以Git术语,对公共核心的本地自定义,以及偶尔的功能或错误修复贡献备份树)

  • 这两个都没有?请你选择,任何一种工具都可以。 *

完整博客发布在此处:http://blog.codesion.com/post/15692788883/subversion-or-git-decisions-decisions

答案 12 :(得分:0)

使用SVN,您必须设置服务器,在那里创建存储库,检查(空)存储库,添加文件,然后提交。

使用Git,您所需要的只是项目根目录中的git init。然后,您可以根据需要添加和提交文件。

设置Subversion服务器并不是什么好主意,因为你是唯一一个在源上工作的人。与许多人的想法相反,独立项目是分布式版本控制工具的完美匹配。稍后开展项目也很容易。

答案 13 :(得分:0)

根据我的经验,Subversion更容易“grok”,但Git更快更容易参与软件开发最佳实践。作为一名前CVS用户,Subversion在我开始使用它时立即对我有所了解。 Git接受了一些研究,我仍然不得不经常参考手册,但我喜欢在我需要维护发布过程时分支和合并代码是多么容易。

如果您已经熟悉CVS并且需要一些东西来保存您的历史记录和差异,那么Subversion将更容易开始使用。如果你不熟悉版本控制,那么潮流正在转向DVCS,特别是Git,所以你可能会获得更多的里程数。

我建议您查看托管提供商,这样您就不必担心设置Subversion服务器,因此您可以拥有Git数据的备份位置。您可以通过Google“subversion hosting”或“git hosting”查看该领域的主要提供商。

答案 14 :(得分:-2)

如果您计划将项目放在USB记忆棒上,请使用Subversion。 Windows XP在USB记忆棒上缓存大量小文件真的非常非常糟糕。 Git为提交操作编写了许多小文件,这在Windows上需要很长时间。

[编辑] Windows XP的问题和USB记忆棒上的文件是缓存(或缺乏)。为防止数据丢失,XP将始终在USB记忆棒上同步写入文件(因此,在 FS已报告所有块已写入记忆棒之后,任何写入将仅返回)。再加上USB棒在处理小文件时速度很慢(它们有很多开销来初始化它们的磨损等级管理),这导致任何类型的应用程序都会写很多小文件的性能很差。

[EDIT2]如果你在USB记忆棒上放置一个SVN签出,你也会有很多小文件(特别是在.svn目录中)。所以这种情况下的解决方案是将Subversion存储库(“服务器”)放在USB驱动器上。存储库仅使用大量文件(如果使用数据库选项而不是基于文件的文件:svnadmin create --fs-type bdb)。这避免了“许多小文件问题”。当前版本的Git无法实现同样的目的。