4

我正在帮助为一个新程序设置 SCM,我们目前正在决定一个 VCS。

此时的主要竞争者是 SVN、ClearCase、SVN+DVCS,而且只是一个 DVCS。

目前,该团队倾向于 SVN 或 SVN+DVCS。我们希望避免 ClearCase 的费用和管理成本,但希望它提供的工作流程和版本控制选项。我也提出了使用 DVCS 的选项,并且正在考虑这个想法。

对于 DVCS,我们正在考虑 Mercurial、Bazaar 和 Git。团队对 SVN 感到满意,但不认为它会提供所需的多功能性,这就是我们在 SVN 选项之上考虑 DVCS 的原因。

有没有人有任何建议(例如现有的工具、流程)来进行这样的设置?

担忧包括:

  • 易于设置
  • 设置工作流程(开发 <-> 代码审查 -> 测试 -> 主干,然后是主干 -> 集成测试分支 -> 将错误修复放入发布分支的发布),审计(发现错误,何时引入)
  • 生成指标
  • 用于习惯 ClearCase 的开发人员的合理学习曲线。
  • 视窗开发
  • 问题跟踪器集成(可能会是 Redmine,虽然它不是一成不变的)
4

4 回答 4

9

作为 ClearCase 的管理员,除非您有复杂的合并工作流程,否则我会排除该工具。

您提到的工作流程涉及能够轻松分支、修复然后合并回来,这不应该有利于 SVN。

当您习惯使用 ClearCase(尤其是非 UCM ClearCase)时,最大的陷阱是配置规范的“组合”。
如果您选择 DVCS(Mercurial、Bazaar 或 Git,因为它在 Windows 上运行得非常好),您将无法获得相同的“继承效果”——(当您选择具有不同连续选择规则的不同版本时—— -:如该答案所述:

在纯粹的中央 VCS 中,您可以使用任何您想要的规则来定义您的工作区(在 ClearCase 中,您的“视图”快照或动态)。
这在 DVCS 中是不切实际的(如在“分布式”中):当您使用它创建分支时,您需要在起点和内容明确定义并轻松复制到其他存储库的情况下这样做。

如果您使用 ClearCase UCM,这意味着识别一致的文件集,这只能通过 - 例如 - Git submodules来实现。
这些 DVCS 的复杂性更高,因为它们不像 ClearCase UCM 那样记录模块(或“文件集”)之间的依赖关系。

所以,回顾一下:

  • 易于设置:所有提到的 DVCS 都易于设置。必须考虑的是用户访问方面的管理。
  • 设置工作流程:DVCS 支持任何类型的工作流程,甚至是集中式工作流程,或公私合营的工作流程,或者.... 关于发现错误,它们都支持某种平分流程
  • 生成指标:如果你的意思是“关于托管代码的指标”,它们都支持一些完整的日志系统,能够显示关于已更改内容的大量信息。
    但就“关于工具的指标”(进程的速度或数据占用的空间)而言,提到的 DVCS 工具被认为比 SVN 快得多(参见此处作为示例)。
  • 习惯于 ClearCase 的开发人员的合理学习曲线:GUI 可以成为缓解学习曲线的一个因素,但 DVCS 与 ClearCase 非常不同,正如这个“核心概念”答案所示。
  • Windows 开发:它们都在 Windows 平台上运行良好,可能对 Mercurial 或 Bazaar 有一点优势(更好的集成)。
  • 问题跟踪器集成(可能会是 Redmine,尽管它不是一成不变的):Redmine 现在支持其中的大多数(而不是像一开始那样只支持 SVN)
于 2009-06-19T17:51:20.880 回答
3

Git有什么问题?我现在在 Windows 上使用 Git。它工作得很好。 如果您想要一些资源管理器集成,如果这是您的问题,Git Extensions非常有用。

于 2009-06-19T17:56:29.877 回答
1

我没有使用 clearcase 的经验,但希望以下内容会有所帮助。您的问题遗漏了我在决定之前会考虑的几条信息。首先,您将拥有多少源代码?虽然 SVN 非常适合大中型项目,但对于像 Linux 内核这样的真正大型项目,Git 将提供更好的性能。其次,您使用的是什么 IDE?虽然 Mercurial、Git 和 SVN 都有 Visual Studio 和 Eclipse 插件,但它们的质量非常好。根据有关 Redmine 的 Wikipedia 文章,您正在查看的任何 SCM 系统都将集成。以下博客可能对您有所帮助,因为它写了一个以编写 SCM 系统为生的人。 http://www.ericsink.com/

于 2009-06-19T18:16:19.330 回答
0

如果您可以放弃它需要在 Windows 上运行的要求,那么我建议您查看 Aegis

于 2012-02-25T15:49:23.103 回答