【发布时间】:2012-03-28 12:42:22
【问题描述】:
再一次,我对发布此问题的最佳堆栈交换网站感到有些困惑。但我认为开发人员最适合回答有关源代码管理的问题,所以就在这里。
我正在考虑一个众包、用户评价的游戏开发项目,我想知道如果有的话,源代码控制和合并系统最有能力托管我感兴趣的源代码控制类型。用户-评级,我的意思是会有某种评级/投票系统,就像在 StackOverflow 上找到的那样。有关项目想法的一些详细信息,您可以阅读我在http://gamedev.enigmadream.com/index.php?topic=1589.0 上发布的关于它的帖子。我认为我需要的是:
- 能够按用户分支并最大化合并功能。我知道源代码控制系统主要专注于按版本进行分支,我们也许可以考虑每个用户维护自己的版本。但是我想我们需要一些非常强大的合并功能来最大化一个用户的能力,例如将另一个用户的更改合并到他们自己的分支中。所以我想我想要“跨分支”合并的能力,而不必先合并到公共根分支。 (我最熟悉 Team Foundation Server (TFS),它不容易支持这一点。)
- 大量分支和合并。如果有成百上千的人想要将他们自己的更改合并到项目中,可能会有很多分支,系统需要能够在不崩溃的情况下处理这些问题。单个用户也可能希望以自己的名义创建从多个其他用户的分支派生的多个分支,理想情况下,可以在一定程度上在它们之间进行合并。
- 分支的权限控制。我看到 SourceForge 支持 Subversion 和 Mercurial,但目前不支持这些路径/分支的权限控制(据我所知),尽管这似乎是一个正在考虑的功能。应该限制用户将他们的代码推送到其他分支。我怀疑用户的正常操作是将编辑从其他分支拉到他们自己的分支中,并在他们自己的分支中签入其他更改。
- 投票系统。我知道我不应该指望源代码控制系统支持原生投票,但任何有助于实现这一点的东西都会有所帮助。例如,投票系统可能会涉及或依赖于标记来自各个分支的最佳编辑并基于标签或一组标签将它们拉入单个文件的能力。任何有助于合并来自不同分支的选定标签集的结果(可能为该集应用新标签)的任何方法也可能有所帮助。
- 文件很少,可能没有目录。我愿意放弃管理大量文件或目录的能力以换取上述任何一项,因为我正在考虑的游戏文件格式通常包含在单个文本中(XML 或 HTML5 --尚未决定)文件。但这确实意味着该系统应该非常擅长有效地将编辑合并到相对较大的文本文件中。我知道 Team Foundation Server 在维护文件更改方面做得很好。我希望其他源代码控制系统至少也能做到这一点。
或者源代码控制不是这里要讨论的正确范例?是否有其他一些技术适合合并这样的代码,一种不涉及源代码控制和/或按照我的想法进行分支的技术?
【问题讨论】:
-
@martin-geisler 我认为,VCS-specific 标签也不适用于 so wide and common 问题
-
@LazyBadger:是的,我认为你是对的——这与任何特定的版本控制系统无关。
-
@MartinGeisler 我包含了特定的标签,因为我认为这些系统的专家将能够提供有关这些单个系统在此用例中的应用情况的信息。
-
@BlueMonkMN:好的,但我认为如果那些专家对此类仅与版本控制相关的问题感兴趣,他们应该订阅版本控制标签。但是,如果您不同意这一点,您可以重新添加标签。
-
@MartinGeisler 我将保持原样。如果我以后问类似的问题,我一定会在问题中明确指出我想了解的每一项具体技术,而不仅仅是在标签中。
标签: version-control