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


当前回答

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

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

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

其他回答

我会选择SVN,因为它传播更广泛,知名度更高。

我想Git更适合Linux用户。

有人指出,在Windows下,SVN似乎是一个不错的选择。

如果您的一些开发人员想要尝试GIT,他们可能总是使用GIT-SVN,其中SVN存储库是在GIT存储库中重新创建的。然后,他应该能够在本地使用GIT,然后使用SVN将其更改发布到主存储库。

Git在Windows下还不受本地支持。它针对Posix系统进行了优化。然而,运行Cygwin或MinGW可以让你成功运行Git。

现在我更喜欢Git而不是SVN,但是如果你来自CVS, SVN的土地,它需要一段时间才能超过阈值。

If your team is already familiar with version and source control softwares like cvs or svn, then, for a simple and small project (such as you claim it is), I would recommend you stick to SVN. I am really comfortable with svn, but for the current e-commerce project I am doing on django, I decided to work on git (I am using git in svn-mode, that is, with a centralised repo that I push to and pull from in order to collaborate with at least one other developer). The other developer is comfortable with SVN, and while others' experiences may differ, both of us are having a really bad time embracing git for this small project. (We are both hardcore Linux users, if it matters at all.)

当然,你的里程可能会有所不同。

SVN是一个repo和许多客户端。Git是一个有很多客户端回购的回购,每个客户端都有一个用户。它是去中心化的,人们可以在本地跟踪自己的编辑,而不必将内容推送到外部服务器。

SVN的设计更加集中,其中Git基于每个用户都有自己的Git回购,这些回购将更改推回到中央回购中。因此,Git为个人提供了更好的本地版本控制。

同时,你可以选择TortoiseGit, GitExtensions(如果你在github上托管你的“中央”git库,他们自己的客户端- github for Windows)。

如果您正在寻求摆脱SVN,那么您可能需要对Bazaar进行一些评估。它是具有这种分布式元素的下一代版本控制系统之一。它不像git那样依赖POSIX,所以有原生的Windows版本,它有一些强大的开源品牌支持。

但您甚至可能还不需要这些特性。看看分布式vcs的特点、优点和缺点。如果您需要的不仅仅是SVN提供的功能,请考虑使用一个。如果您不喜欢,您可能希望坚持使用SVN(目前)的高级桌面集成。