谷歌代码+SVN或GitHub+Git

59

首先,让我告诉你,除了SVN以外,我从未使用过其他东西,而且我也是Windows用户。

我有几个简单的开源项目,其他的也正在路上,当我足够满意发布他们的源代码时就会发布。不管怎样,我正在考虑使用Google Code和SVN来共享我的项目源代码,而不是在我的网站上提供源代码的链接。这一直是一件麻烦事,因为每次发布新版本时,我都必须更新二进制文件和代码。这也有助于我在本地机器之外备份我的代码(我曾经运行过本地Subversion服务器)。

我想要这样的服务非常简单... 我只想要一个可以存储我的源代码的地方,如果需要,人们可以下载它,并允许我控制修订版本并提供一个简单易用的问题/漏洞系统,使人们可以提交漏洞和类似的内容。 我认为它们两个都有这个功能。

但是我不想将任何二进制文件托管在它们的网站上。我希望这些文件托管在我的网站上,这样我就可以通过自己的脚本控制下载统计数据。我也没有使用维基页面的需求,因为我更喜欢将所有文档放在自己的网站上。这些服务是否提供了一种方法来“禁用”维基和下载功能,并完全不显示它们对于我的项目(们)?

现在,我确定使用Google Code和SVN以及GitHub和Git有很多优缺点(当然),但以下是对我每个选项都很重要的内容,以及为什么我喜欢它们:

Google Code:

  • 与任何Google页面一样,它的复杂性几乎不存在
  • 每个人(或几乎每个人)都有Google帐户,如果人们想要使用问题系统报告问题,这很好

GitHub:

  • 可能(也可能不是)比Google的页面更加复杂(对我来说并不是问题)但是...
  • ...拥有比Google服务更漂亮的界面
  • 需要用户注册GitHub才能发布问题
  • 我喜欢Git的一个特点,就是你可以在本地进行修改(我可以用TortoiseGit吗?)
  • 基本上就是这样。不多,我知道...

    您能告诉我有关每个站点/软件的其他常见优缺点吗?请记住,我的项目很简单,我可能是唯一一个在这些存储库上开发这些项目的人(或者也许不是,但目前是这样)。


    3
    关于“禁用”功能的问题,我知道Google Code允许你通过进入管理->选项卡来隐藏一些选项卡,比如维基和下载等。同时,你也可以在主页上提供链接返回你的主页。 - jimmyorr
    1
    @uglysmurf GitHub也具有相同的管理功能。 :) - Marc Charbonneau
    你实际上也可以在Github.com上使用 svn,但是Github的问题跟踪器很糟糕--他们可能没有提供这个。如果您要使用Github,我建议使用Redmine或Trac来管理您的问题。 - Nick Bolton
    我真希望Google Code支持Git,一旦你开始使用Git,其他所有东西都会感觉不自然!如果你想为GitHub上的项目做贡献 - 只需fork它!当你完成更改后,原始项目所有者可以审查你的分支(进行广泛的测试等),然后再合并回去。多个分支可以同时存在,并由不同的用户开发 - 这一切都可以在一个伟大的时间轴上可视化,显示所有的forks、commits和merges。我可以这样说:这是一个不那么庞大而且更透明的开发过程。 - Frank
    @Frank:SVN允许检出repos并创建分支。如果您不喜欢SVN,Google Code还支持Mercurial。 - niutech
    谷歌代码现在支持Git。 - Hemang
    11个回答

    43

    Google Code现在支持Mercurial版本控制系统。Mercurial可以为您提供Git的大部分好处,同时也拥有Google Code的成熟性。如果您需要,您还可以选择使用Subversion。


    好观点,我自己从未注意到这一点。在我看来,Mercurial的Windows工具要好得多。尽管出于各种原因,我更喜欢Git模型。 - jsight
    1
    GC目前还不支持Mercurial - 这只是为选定用户提供的测试版。 - anon
    Mercurial不在考虑范围内...如果我要从SVN转移(就像我说的那样,这是我唯一使用过的东西),那么我会选择Git,而不是其他任何工具。 - rfgamaral
    1
    Nazgulled,几乎任何东西都比svn好。如果你没有其他经验,我认为你下定决心做出这样的决定是不明智的。(话虽如此,我现在主要使用git,但我对hg有很好的理解,因为我长时间使用它)。 - Dustin
    4
    目前,GC Mercurial已经退出测试版。 - James McMahon
    显示剩余2条评论

    30

    1
    +1 是的,它确实可以,并且设置也非常简单。这应该成为新的被接受的答案。 - Evan Plaice

    22

    GitHub有两个主要优点:

    1. 它使用git(当然!)
    2. 这是一个非常“社交”的环境。

    GitHub使得向他人的代码做出贡献变得非常容易,并且对于他们将其集成回来也很容易。他们还内置了许多酷炫的提交后钩子;例如,当我提交到我的存储库之一时,会向我的Google Groups公告列表发送电子邮件,并弹出一个机器人进入irc频道,给出更改摘要,然后再弹出。我知道至少一个 CI服务会触发GitHub提交(或者说是推送)。

    如果您计划将其作为相当小型的单独项目,则您可能不会发现GitHub的大多数功能非常有用。


    3
    确实。要理解美丽,就必须使用GitHub。 - Frank
    在GitHub的网页上,总是跟着“Social programming”这个词,现在从熊那里,我可以推断出:社交编程意味着大规模编程(可能源于敏捷中的配对编程)。 - parsifal

    21

    我个人对TortoiseGit并没有特别积极的体验。虽然我很喜欢git模型,但在Windows上使用时,一切都感觉很奇怪。我经常最终只使用cygwin版本,但即使如此,它也远非完美。

    说实话,对于想要开源的小项目,我可能会选择在Google Code上托管,并暂时使用SVN。如果您已经是git专家,情况可能会有所不同,但我不确定为了一个小的、基于Windows的项目而学习曲线是否值得(尤其考虑到可能会因此失去许多Windows开发者)。


    7
    在Windows上使用Git总是让我感到有些奇怪。它的Linux根源太深了。 - Steve Rowe
    7
    为什么Windows用户对Git如此反感?我是一名Windows用户,最近开始使用Git,我很喜欢它。 - Jo Sprague
    尽管我喜欢Git而不喜欢SVN(这涉及到分布式版本控制系统与集中式版本控制系统的区别,这里就不展开了),但在这种情况下,我会留在熟悉的领域——SVN,因为它们确实有一些不同的工作流程,通常是针对相同的命名事物,其中分支是最大的例子。 - Michael Durrant
    3
    不管价值如何,我认为这里的问题和答案现在都已经过时了。Google Code现在支持Git,并且我相信在Windows上使用Git也已经相当不错了。 - jsight
    @JosiahSprague 在Windows上使用Git仍然很糟糕。我每天都在工作中使用Windows电脑,但是我会在VirtualBox上打开Linux Mint克隆版进行开发,因为我无法忍受在没有'git cola'和'gitk'的情况下使用git进行开发。Tortoise对于SVN来说很棒,但是在Git方面感觉很尴尬。 - Evan Plaice

    8
    以下是关于Google Code的答案(我使用并非常满意):
    但我不想在他们的网站上托管任何二进制文件。
    所以不要这样做- Google服务条款中没有要求你这样做。
    我也不需要wiki页面。
    像GC网站上几乎所有选项卡一样,维基页面可以被禁用和隐藏。
    为什么不为您的项目创建一个Google Code页面(只需大约2分钟,免费),并尝试使用管理选项来查看它是否符合您的要求?

    2
    每次我注册新的Google服务时,如果我不想再使用它,我就无法将其从我的帐户中删除,这让我很困扰,因为我是一个很整洁的人。此外,二进制文件背后的事情实际上并不是你说的那样...是否有一种方式可以在GC页面上添加下载链接,但将它们指向特定的URL?尽管社交方面不是很重要,但GitHub拥有如此漂亮的界面和社交功能,正如某人所说,它们非常好看。 - rfgamaral
    您可以在主页上创建一个指向您的下载链接,但我认为没有办法让您的二进制文件出现在下载选项卡下方。 - anon

    7

    3

    看起来Google Code更适合你的需求,尤其是它使用的SVN(现在是Mercurial,但因为你最熟悉SVN所以我们提到了它)。至于其他你不太关心的功能,你可以通过在UI中禁用它们的选项卡来关闭它们。

    我是Google Code的粉丝-它简单而直接。


    2
    SVN是我第一次使用的源代码控制类型。它一直运行良好,但在切换到GIT后我再也没有回头。听起来阻止您使用Git的最大问题是找不到好的工具。我曾经使用过tortoiseSVN,并尝试过tortoiseGit,但并不满意。
    请尝试Git Extensions,它绝对是任何操作系统上最好的GUI界面。

    1

    为什么不两者兼顾呢?您可以使用Google Code来托管项目,并将GitHub作为您的代码库。以robotium.org为例。


    1
    您也可以将代码推送到Google Code和GitHub,以便备份。 - linquize

    0

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接