我应该将哪个VCS用于Google代码?

时间:2009-11-19 12:09:50

标签: svn version-control mercurial google-code

我即将开始一个项目,并考虑使用Google Code来托管它。它提供了使用Mercurial或SVN进行版本控制的选项。我以前从未使用过VCS,并且想知道哪一个更容易使用。

该项目涉及两个主要程序员,但其他一些可能会贡献少量。它主要是在python中,我们使用Emacs作为主编辑器。我们都在使用Windows操作系统。

5 个答案:

答案 0 :(得分:12)

使用Mercurial。

两个系统都很简单,但Mercurial将快速。想比较一下昨晚别人做了什么和你昨晚做了什么?使用SVN时,每个文件在与Google服务器通信时需要花费几秒钟的时间。有了Mercurial,它几乎是即时的。

每个差异的几秒钟可能听起来不是很多,但是一旦你使用一个消除(大部分)停顿的系统,一个快速响应的界面的好处将变得明显。

哦,人们可以在没有的情况下分叉您的项目这是一个巨大的痛苦。那也很酷。

编辑:Mercurial也觉得不需要在项目的每个文件夹中打一个.svn文件夹。那些东西很丑陋(默认情况下不会隐藏在Windows上,就像它们在* nix系统上一样)。在项目的根目录下只有一个.hg文件夹,它更清晰。

编辑:使用Mercurial的另一个原因:hg bisect。在10分钟而不是2小时内追踪错误,因为您能够找到导致它的确切修订 awesome 。看起来有一个Perl svn-bisect工具,但它不在核心,SVN在修订之间更新的缓慢将使它成为一个更长的过程。

答案 1 :(得分:1)

如果您之前从未使用过VCS,请选择其中之一。两者都足以满足您的需求,您必须从头开始学习。

Mercurial像git一样是分散的,但对于一个从未接触过源代码控制的2程序员团队,我不会太担心。

选择并忘记它。

答案 2 :(得分:1)

简单的回答是SVN - 激活TortoiseSVN和TortoiseHg,你会发现前者在美学和可用性方面比后者有一段距离但是我不认为这个简单的答案就足够了情况下。

如果你是第一次开始使用版本控制我会受到诱惑(因为我目前对SVN感觉比对Hg更舒服)建议Mercurial是更好的方法。分布式版本控制(DVCS)目前提供了比Subversion更强大的灵活性,因为它依赖于中央存储库。特别是在将完成的更改推送给同事之前,您能够提交未完成的本地代码。 Mercurial有一本“书”,所以你有一套可以使用的指南,并且它已被普遍接受为工具,因此可以获得同伴支持。

我对DVCS的主要关注是,由于各种原因,我认为版本控制不完整而没有单独的服务器(或者至少没有存储库不在您的开发盒上)。但是在这种情况下,您将拥有一个中央存储库...因此该参数的效果较差。

我有一个次要问题,我认为应该尽早将持续集成服务器(构建和测试)引入到一个项目中,但是在给定共享/中央存储库的情况下,这可以通过DVCS完成

我仍然认为SVN有一个很多来表彰它,我们的工作存储库在可预见的未来仍然是SVN(注意我是那个可以决定的人!),但是同样地,我正在使用Mercurial做我个人的事情,并在我学习的同时学习。

答案 3 :(得分:1)

如果您从未使用过VCS,那么任何一个都可能很难/轻松。我不认为这有什么主要区别。然而,这两者之间的一个重要区别是SVN是集中的,Mercurial是分散的。

如果您在没有网络访问权限的地方(飞机,火车等)工作,分散的VCS将允许您在开始新的更改之前在本地提交更改。稍后您将与中央存储库同步。这可以很方便。

集中式VCS不允许这样做。当然,您仍然可以处理代码,但由于无法在更改之间进行检查,因此当您返回访问存储库时,必须立即提交累积的更改。

答案 4 :(得分:-1)

好吧,我认为你应该使用SubVersion。 不是因为SVN在功能方面比Mercurial更好,但是因为SVN很受欢迎并且有很多文档(例如免费的电子书)以及一些非常好的免费插件(VS的AnkHSVN,Windows资源管理器的TortoiseSVN) )。如果您之前从未使用过VCS,我认为文档会很快启动并运行...

HTH!