编辑2015-08-01:该答案仍在获得观看和投票。它不只是古老的,我想删除它,但是由于它是公认的答案,所以我不能这样做。再说一次,它是社区Wiki,社区已将其保持最新状态-谢谢!
SourceForge陷入了黑暗的一面,接管了项目并将其与Adware(Google GIMP Sourceforge Adware)捆绑在一起。不惜一切代价避免。GitHub仍然是最受欢迎的版本,尽管还有其他选择(例如,BitBucket最多可免费提供5个用户的无限私人存储库。)
在过去的几年中,情况发生了很大变化是很疯狂的,如果您将来阅读此书,也许GitHub不再是很棒的产品。最重要的是:对于要使用的任何源代码控制系统,都有许多很棒的选项。
为了历史起见,下面的2010年旧信息
编辑:这个答案现在很古老。在过去的两年中,GitHub成为了主要的代码托管场所,每当我必须创建一个新的OSS项目时,我都没有去哪里的阴影。将此留作参考。
确实,我的发帖现在已经快2年了(2008年),不再完全准确。
为什么?
因为我认为SourceForge现在对于开源项目而言微不足道。好的,这将给我带来很多麻烦,所以让我澄清一下:
我绝对坚信开放源代码项目应该在DVCS上运行,最好是git或mercurial,因为它们是最广泛使用的-对Bazaar不利,但我认为这太模糊了。(编辑: SourceForge现在提供Mercurial和Bazaar,因此这种说法不再成立。但是,经过两次重新设计,我认为SF的形象不太好。将它们与公司形象进行比较:GitHub是Apple,SF是IBM。坚如磐石,但有点尘土飞扬)
因此,如果我要再次写这篇文章,那就是CodePlex vs. GitHub vs. BitBucket,而GitHub是冠军。但这是一个笼统的声明,所以让我添加细节。+/-并不是严格意义上的Pro / Con,而是更多地强调不同的哲学。
CodePlex
+真正的Mercurial / Git托管-TFS之上没有错误的桥梁,您拥有真正的Mercurial / Git
+集成的Wiki,可以添加丰富的文档和漂亮的页面
+包含Bug跟踪器和论坛
-源代码浏览器不是很好-差异出现在弹出窗口中,只是“感觉”复杂
-分叉和拉取请求“不那么容易”-UI可以使用一些工作
总体而言,CodePlex仍然很棒,但是我觉得它更适合单个开发人员或非常小的团队,因为该网站的重点是Wiki而不是源代码。它更是一种发布,而不是协作平台。从理论上讲,您不需要项目主页,您的CodePlex项目可以成为您的一站式商店。
的GitHub
+ Git托管,支持SSL / SSH
+网络图允许查看派生以及何时合并到什么内容中
+能够“观看”项目-您的帐户页面就像带有新签到的Facebook墙
+具有注释能力的超级优秀差异查看器单行更改- 请参阅此处
+分叉是一个两下单击的过程,发送拉取请求也是这样
+ GitHub现在具有适用于Windows的GUI工具GitHub-
对于非开发人员而言,主页并不十分“漂亮”。如果您的项目中有自述文件(支持某些标记语言,如Markdown或HTML),则会显示该自述文件,但初始页面是源代码
-Wiki并不是那么好-它是Markdown,但有时格式化感觉有点太复杂了。
GitHub与CodePlex有着不同的理念:都是关于源代码和开发人员之间的协作。主项目页面是最新的源代码。有一个单独的Wiki,但是它更多地用于文档而不是项目的展示。网络图非常棒,尽管一旦有超过20个分支就会使人困惑(通常当宣布一个备受瞩目的项目时,每个人和他们的狗都在分叉,但是大多数分支很快就会死掉)。GitHub可以很好地扩展到任何规模。
实际上,GitHub使我可以非常轻松地创建一个项目,应用修订/补丁,将其提交到我的派生库以及向作者发送拉取请求。与网络图一起,非常容易看到提交。
但是您很可能需要一个单独的主页来向最终用户展示您的项目并提供下载,因为GitHub的下载功能并不是那么好。
比特桶
+ Git / Mercurial
+允许免费使用私人存储库,最多5个用户
我还没有足够使用BitBucket来发表真正的评论。使其与众不同的一个功能是私人托管是免费的,而GitHub收费,而Codeplex根本不提供它。
谷歌代码
Google代码已不再可用。
- 自2015年3月起,无法创建项目,由于竞争性服务更好,Google服务将在2016年1月25日永久关闭。
-这很丑陋,而且浏览源代码也太复杂了(链接有些隐蔽)
我没有使用过它,所以我不想说它不好-不是。许多项目都在使用它,并且它非常稳定和健壮,没有任何开发者对此感到失望。但是,就个人主观观点而言,“设计”使我望而却步。
SVN与Git / Mercurial
在上面重申我对SourceForge过时的评论:当然,这有点苛刻。但是,我确实相信SVN不利于开源项目。首先,奇怪的元数据要求忽略了文件。在Git或mercurial上,您在源树的根目录中有一个名为.gitignore或.hgignore的文件,其中包括要忽略的文件/目录/模式的列表。没有神奇的svn:忽略.svn文件夹中的元数据。仅此一项就为我把SVN吹了出来。如果我启动一个新的Visual Studio项目,则需要应用该魔术元数据,而使用Git / mercurial,我只需复制一个文件并完成该文件。
然后,分叉,打补丁和发送拉取请求的功能非常出色,特别是对于小型/一次性打补丁。
最后但并非最不重要的一点是,SourceForge对于我来说仍然太复杂了。这不是一个坏主机,但它确实表明它已经是恕我直言的年龄了。话虽如此,它仍然很健壮,并且在世界范围内拥有许多镜子。Bug Tracker也比其他的要复杂得多。
另外,如果您的项目出于某种原因需要严格的贡献规则(这可能是有道理的,例如通过法律保护以确保所提交的代码确实是合法贡献的),则可以在SourceForge上使用像SVN这样的传统系统。
编辑:不知道SF终于有了分布式托管。如上所述,它很强大,但不再是“酷小子”,我觉得它太复杂了。
TL; DR
对于任何中小型项目,我都会衷心推荐GitHub,对于您想要一个不错的网站的小型项目,我也建议使用CodePlex,对于私人项目,我建议使用BitBucket。对于需要非常复杂的错误跟踪器,大量额外功能和“真实”网站的大型项目,请考虑使用Source Forge。