在托管您的个人废弃项目时,一项服务和项目结构是否突出?[关闭]


12

我正在研究Google Code,SourceForge,BitBucket和GitHub,因为它们似乎是主要参与者。现在,我还没有分解它们提供的所有功能,但是我确实在寻找一个放置我编写的各种代码的地方(我为Euler项目提供的解决方案,可能为Code Golf编写的代码/在一个集中的位置编程拼图堆栈交换等。

因此,我的第一个问题是:在这种情况下,一项服务是否在其他服务中脱颖而出?


一旦选择了服务,就需要选择如何分发代码。我看到一些用于设置存储库和项目的选项。单个存储库可以容纳任意数量的项目-例如,对于我对Project Euler的所有各种解决方案,我可以拥有一个“ Tom Owens's Project Euler Solutions”存储库,该存储库内目录中的每种语言和环境的项目,另一个存储库适用于我的各种Code Kata解决方案等等。或者我可以按语言细分类似的内容(在一个存储库中有Python的Project Euler解决方案,在另一个存储库中有Java的PE解决方案,在第三个存储库中有Code Kata C ++解决方案)。

我的第二个问题:在确定应如何共享选择的代码示例时,是否存在任何限制或约定,特别是在创建存储库方面?我的想法是,这可能取决于您选择的服务(基于社区的惯例)。

Answers:


10

位桶。

他们提供了出色的服务,免费提供了私有存储库(加上无限的公共存储库),并且在问题跟踪器中反应迅速。

同样,减去免费的私人存储库,对于Github都是正确的,但是我非常不喜欢git。这是个人喜好,我不反对git,如果出于某些奇怪的原因,您更喜欢git ,那么Github是一个完美的选择。

至于如何组织回购协议,如果可以避免的话,请不要混用语言。大多数IDE都是基于一个项目是基于单一语言构建的假设而构建的(Web项目除外,该Web项目需要使用语言+ html,css和js的组合)。我并不是说IDE将无法应付,只是代码完成之类的功能会稍微慢一些,因为IDE必须加载有关如何处理每种语言的数据。

如果您的存储库是公共的(因此不受限制),那么我会按照项目模式为每种语言提供存储库,即“ euler_cpp”,“ euler_python”等。选择哪种服务,如何组织存储库都无关紧要完全取决于您。

至于文件夹结构,对于项目欧拉解决方案:

  • 如果您计划针对同一问题提供不同的解决方案,则为每个问题分配一个文件夹
  • 每个问题一个文件,用于单个解决方案

选择一个合适的并坚持下去,如果对于一个问题,您有多个解决方案,那么即使您没有针对其他任何问题的第二个解决方案,也请选择第一个结构。

更新:

仅在实际适用时建议每个问题一个文件,并且建议将其作为解决项目欧拉问题的潜在方案,因为这是问题中唯一指定的项目。

根据btilly的评论,我要补充的是,应该针对每种语言确定更好/更自然的结构,因为每种语言和/或平台都具有关于文件和文件夹的自己的约定和惯例。


1
文件夹结构应取决于语言。使用脚本语言的人经常在一个文件中编写代码,而在C / C ++中,该文件自然会跨文件夹中的多个文件编写。
btilly 2011年

@btilly对。我正在将您的评论添加到答案中……
yannis 2011年

实际上,我并不是在专门寻找如何在项目中布置文件,而是在如何在所使用的服务中布置多个项目。
Thomas Owens

@Thomas 至于如何组织回购...。传统上,每个存储库只有一个项目。您是否正在寻找每种服务的具体说明?
yannis 2011年

我要寻找的是每个社区中存在的任何约定,如果有任何不寻常的约定。以我的经验,像BitBucket,GitHub和SourceForge之类的东西更多是具有规范和约定的社区,而不仅仅是服务(尽管有些人像服务一样使用它们)。
Thomas Owens

3

您忘记了一个选择-托管自己的存储库。直到最近,确实是唯一的飞行方式。

如果我今天必须使用一个,我会选择bitbucket主要是因为它们允许私人仓库和水银。


我使用VisualSVN做到了这一点,没有太多痛苦。
科迪·桑德

去过也做过。使用turnkeylinux.org设备可以获得更有效的效果。。
Wyatt Barnett

3

在不同时间使用Google Code,SourceForge和GitHub后,我想说GitHub比其他两个要好得多:

  • 完全专注于创建和共享代码的实际工作。
  • 默认情况下,问题处理是启用的,它不仅易于使用,而且与代码和请求请求都很好地联系在一起。
  • 新手帮助非常出色,例如有关存储库入门和处理请求请求的分步说明。
  • 不用于二进制分发;最好由PyPI等专业网站来处理。
  • 简单的Wiki,而不必从头开始开发自己的网页。
  • 出色的Feed支持-单一Feed,可满足我的所有有趣需求。
  • 非正式的,因此可读的交流。
  • 非常积极地开发新功能。

同样,Github非常适合用于存储通过使用gist来存储诸如Euler项目解决方案和编码高尔夫代码片段之类的东西。
Matt Ellen

1

我的个人项目不是很大(很多文本,没有图形),所以我在DropBox中拥有Mercurial仓库和主数据库。这是开始备份的快速方法(如果DropBox消失了,我仍然拥有我拥有的每台计算机上的存储库副本)和可移植性。

假设我有一个项目可以分发到该点,那么我可以随时将其移至Bitbucket以提高可视性。这不包括Euler Project解决方案的代码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.