Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 源代码管理系统按用户而不是版本进行分支_Version Control - Fatal编程技术网

Version control 源代码管理系统按用户而不是版本进行分支

Version control 源代码管理系统按用户而不是版本进行分支,version-control,Version Control,再一次,我对发布这个问题的最佳stack exchange站点感到有点困惑。但是我认为开发人员最适合回答关于源代码管理的问题,所以这里就是 我正在考虑一个众包的、用户评级的游戏开发项目,我想知道什么样的源代码管理和合并系统最适合托管我感兴趣的源代码管理。通过用户评级,我的意思是会有一些类似StackOverflow的评级/投票系统。关于这个项目想法的一些细节,你可以阅读我的帖子。我想我需要的是: 能够按用户进行分支并最大化合并功能。我知道源代码管理系统主要关注按版本进行分支,我们可能会考虑每个用

再一次,我对发布这个问题的最佳stack exchange站点感到有点困惑。但是我认为开发人员最适合回答关于源代码管理的问题,所以这里就是

我正在考虑一个众包的、用户评级的游戏开发项目,我想知道什么样的源代码管理和合并系统最适合托管我感兴趣的源代码管理。通过用户评级,我的意思是会有一些类似StackOverflow的评级/投票系统。关于这个项目想法的一些细节,你可以阅读我的帖子。我想我需要的是:

  • 能够按用户进行分支并最大化合并功能。我知道源代码管理系统主要关注按版本进行分支,我们可能会考虑每个用户维护自己的版本。但我想我们需要一些真正强大的合并功能,以最大限度地提高一个用户将另一个用户的更改合并到自己的分支中的能力。因此,我想我希望能够“跨分支”合并,而不必首先合并到公共根分支。(我最熟悉Team Foundation Server(TFS),它不容易支持这一点。)
  • 大规模的分支和合并。如果有成百上千的人希望将他们自己的变更纳入到项目中,那么可能会有很多分支,系统需要能够在不崩溃的情况下处理这些分支。一个用户可能也想创建多个分支,这些分支是以自己的名义从多个其他用户的分支派生出来的,理想情况下,这些分支在某种程度上能够在它们之间进行合并
  • 分支的权限控制。我看到SourceForge支持Subversion和Mercurial,但目前不支持按路径/分支对其进行权限控制(据我所知),尽管这似乎是一个正在考虑的功能。应限制用户将其代码推入其他分支。我怀疑用户的正常操作是将编辑从其他分支拉到自己的分支中,并在自己的分支中签入其他更改
  • 投票制度。我知道我不应该期望一个源代码控制系统支持本地投票,但任何有助于实现这一点的东西都会有所帮助。例如,投票系统可能涉及或依赖于标记来自不同分支的最佳编辑并基于标签或标签集将其拉入单个文件的能力。任何有助于合并来自不同分支的一组选定标签的结果的东西(可能对该集合应用新标签)也会有所帮助
  • 文件很少,可能没有目录。我愿意放弃管理大量文件或目录的能力,以获得上述任何一项,因为我正在考虑的游戏文件格式通常包含在单个文本(XML或HTML5——尚未决定)文件中。但这确实意味着该系统应该非常擅长有效地将编辑合并到相对较大的文本文件中。我知道Team Foundation Server很好地维护了对文件的更改。我希望其他源代码控制系统至少也能做到这一点
  • 或者说源代码控制不是这里要讨论的合适范例?有没有其他技术适合合并这样的代码,一种不涉及源代码控制和/或分支的技术

  • 任何VCS,因为“…源代码管理系统主要关注按版本进行分支…”是错误的,VCS支持随着时间的推移对代码进行不同的更改,不多也不少
  • 任何DVC,因为它们具有良好的地面分支合并能力
  • Mercurial具有分支级ACL,SVN具有基于路径的ACL。由于Subversion具有物理树存储库(在某种程度上),ACL可以应用于子树的任何部分,即分支
  • 任何CodeReview工具,与VCS集成并针对特定需求进行修改
  • 化石SCM是单文件可移植EXE,repo-一个文件任何DVC也只向现有树添加一个回购目录,并处理大文件而不会令人头痛

  • @martin geisler我认为,VCS特定的标签在这里也不适用,因为它非常广泛和常见question@LazyBadger:是的,我想你是对的-这并不是关于任何特定的版本控制系统。@MartinGeisler我包括了特定的标签,因为我认为这些系统的专家能够给出关于这些单独的系统在这个用例中应用情况的信息。@BlueMonkMN:好的,但是我认为,如果这些专家对像这样只与版本控制相关的问题感兴趣,他们应该订阅版本控制标签。如果你不同意,你可以把标签加回去。@MartinGeisler我会保持原样。如果将来我问一个类似的问题,我肯定会在问题中明确指出我想知道的每一项具体技术,而不仅仅是在标签中。2:TFS是DVCS,对吗?它似乎只有很好的支持合并成父母和后代,而不是兄弟姐妹,所以我想在这里有一个更具体的答案。TFS是唯一不支持跨分支合并(同级)的DVC吗?3:您说SVN支持基于路径的ACL。您是否暗示它不支持基于分支的ACL?如果是这样的话,我希望避免SVN,假设我希望每个用户都有自己的分支,对吗?4:需要注意的标签特征是否存在显著差异?5:Fossil SCM是否适用于#3(支持权限控制)?此外,git和github在多大程度上满足了这些要求?既然你在回复中没有提到git,你应该