我为什么要在这样的地方托管代码?
开源软件开发的关键是共享源代码。有几种方法可以做到这一点,例如将tar / zip文件放在Web或ftp服务器上。诸如Google代码(或sourceforge.net,gitorious.org,bitbucket.org等)之类的服务消除了为此目的运行自己的服务器的需要。
这是否意味着我必须从当前托管中删除该站点,或者这是一种完全不同的托管类型?
这些服务不是通用的Web主机,而是运行非常专业的服务。它们并不是要成为产品的主页,而应该是开发人员仪表板。
用谷歌代码你得到
- 维基
- 错误跟踪器
- 常规文件下载空间
- 版本控制服务器
当然,您可以在常规的Web服务器上设置这些软件(版本控制的东西可能很棘手,但这在很大程度上取决于细节),但是使用开发托管服务商的主要好处是您无需保重这些系统供您自己使用。主要缺点是您无法控制服务器上使用的软件,而必须使用该主机上的可用软件。您还需要考虑如果服务中断(好吧,谷歌永远不会失败),以及是否可以将数据从当前主机转移到另一台或您自己的服务器(考虑备份),会发生什么情况。
当我将网站开源时会发生什么,我拥有什么权利,
这是一个棘手的问题,因为它取决于您所居住国家的法律。
我赋予什么权利。
这取决于您授予产品的许可。它可以来自专有的开放源代码(例如PGP),用户基本上不能对代码做任何事情,而另一方面是公共领域,每个人都可以做他想做的事。
它是如何工作的,人们只是来免费向我扔代码吗?
因为您的产品需要足够的普及度才能吸引其他开发人员,所以这种情况极不可能发生。
[...]现在它问我是否要让该项目具有Git,Mercurial或Subversion代码托管。
这是三种不同的版本控制系统,其中Subversion是集中式版本控制系统,而Git和Mercurial是分布式的。
有宗教战争要使用哪一种,但要点是要使用一种。有关更多详细信息,请参见http://martinfowler.com/bliki/VersionControlTools.html。
何时选择Subversion:
- 您有二进制文件,这些文件不易合并,并且需要lock-> modify-> commit-> unlock工作流,该版本支持subversion¹
- 您只需要检出目录结构的一部分。
¹有一个用于水银的锁扩展名,但是我没有使用它的经验,因此无法确定它是否可用。
当您不需要以前的功能时,最好使用Mercurial或Git。与Subversion相比,它们都具有以下优点: