我正在开始一个新的分布式项目。我应该使用SVN还是Git,为什么?


当前回答

你试过Bzr吗?

这很好,cononical(制作Ubuntu的人)制作它是因为他们不喜欢市场上的其他东西……

其他回答

我可能会选择Git,因为我觉得它比SVN强大得多。有一些便宜的代码托管服务对我来说非常有用——你不需要做备份或任何维护工作——GitHub是最明显的候选者。

也就是说,我对Visual Studio和不同的SCM系统的集成一无所知。我认为与SVN的集成会明显更好。

我会设置一个Subversion存储库。通过这种方式,个人开发人员可以选择是使用Subversion客户机还是Git客户机(使用Git -svn)。使用Git -svn不能为您提供完整Git解决方案的所有好处,但它确实为单个开发人员提供了对自己的工作流的大量控制。

我相信Git在Windows上的表现会在相对较短的时间内达到在Unix和Mac OS X上的效果(既然你问了)。

Subversion为Windows提供了出色的工具,例如用于浏览器集成的TortoiseSVN和用于Visual Studio集成的AnkhSVN。

我从来没有理解过“git在Windows上不好”这个概念;我只在Windows下开发,git从来没有遇到过任何问题。

我绝对推荐git而不是subversion;它只是更加通用,并且允许“离线开发”,这是subversion永远无法做到的。它可以在几乎所有可以想象到的平台上使用,并且拥有比你可能使用过的更多的功能。

这可以归结为:

你的发展是线性的吗?如果是这样,您应该坚持使用Subversion。

另一方面,如果您的开发不是线性的,这意味着您将需要为不同的更改创建分支,然后将这些更改合并回主开发线(Git称为主分支),那么Git将为您做更多的工作。

肯定是svn,因为Windows充其量是git世界中的二等公民(更多细节请参阅http://en.wikipedia.org/wiki/Git_(software)#Portability)。

更新:抱歉断开的链接,但我已经放弃尝试让SO与包含括号的uri一起工作。[链接现在固定。——编者)