2009-06-19 69 views
4

我正在帮助SCM为新程序设置,而且我们目前正在决定VCS。开源Clearcase Alternative

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

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

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

有没有人有任何建议(例如现有的工具,流程)获得这样的设置?

关注的问题包括:

  • 设置的难易
  • 设置工作流程(发展< - >代码审查 - >测试 - >树干,然后干线 - >集成测试分支 - >发行与bug修复放进入发布分支),审计(发现一个bug,何时引入)
  • 生成指标
  • 开发人员使用ClearCase的合理学习曲线。
  • 的Windows开发
  • 问题跟踪集成(可能将是Redmine的,虽然它不是一成不变的)

回答

9

作为ClearCase的管理员,我会排除工具,除非你有一个复杂合并工作流。

workflow你提到涉及到能够分支,修复,然后很容易合并回来,这不应该支持SVN。

当您习惯了ClearCase(特别是非UCM ClearCase)时,最大的陷阱就是配置规范的“构成”。
如果您选择的DVCS(水银,巴扎 - 或Git的,因为它works really well on Windows),你会not be able to get the same "inheritance effect" -- (when you are selecting different versions with different successive select rules --:在这个问题的答案说:

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

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

因此,要回顾:

  • 易于安装:所有提到DVCS易于安装。必须考虑的是用户访问方面的管理。
  • 设置工作流程:DVCS支持任何类型的工作流程,甚至是集中式工作流程,或公共 - 私人工作流程或....关于查找错误,他们都支持某种类型的bisect process。生成度量标准:如果你的意思是“关于所管理代码的度量标准”,它们都支持一些完整的日志系统,能够显示大量有关已更改内容的信息。
    但是,根据“关于工具的度量标准”(数据所采用的进程或空间的速度),所提及的DVCS工具被认为比SVN快得多(请参阅here as an example)。
  • 用于ClearCase的开发人员的合理学习曲线:GUI可以是缓解学习曲线的一个因素,但DVCS与ClearCase非常不同,因为此“core concepts”答案说明了这一点。
  • Windows开发:它们在Windows平台上都能很好地工作,可能对Mercurial或Bazaar有一点优势(更好的集成)。
  • 问题跟踪集成(可能将是Redmine的,虽然它不是一成不变的):现在Redmine的支持大部分(不只是SVN,因为它没有在一开始)
3

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

+1

与Linux相比,Git在Windows上很慢。而且TortoiseGit现在还不是真的可用。那就是问题所在。 – 2009-08-08 00:09:33

+0

如果你是一个Windows用户,你为什么真的会在Linux上多快?重要的是它如何与你的Windows替代品相比(更快)。乌龟完全不重要。 Gitgui工作得很好,它是围绕Git的功能而设计的。 – 2009-08-10 14:06:39

1

我没有使用clearcase的经验,但希望以下内容能帮助一些人。您的问题留下了几条信息,我会在决定之前考虑这些信息。首先你会得到多少源代码?虽然SVN对于像Linux内核这样的真正庞大的项目的大中型项目很好,但Git将提供更好的性能。其次是你在用什么IDE?虽然Mercurial,Git和SVN都具有visual studio和eclipse插件,但质量非常高。根据关于Redmine的维基百科文章,您正在查看的任何SCM系统都将整合。以下博客可能会对你有所帮助,因为它的写作购买了一个以SCM系统为生的人。 http://www.ericsink.com/

+0

Git/VS集成有一个问题。我似乎无法找到它,但我的评论(仍然存在)是,使用像Git这样的编辑/合并系统,您并不需要* VS集成。你把所有东西都拉下来,*然后*做你的VS东西(代码,调试等),*然后*合并。在开发过程中不需要经常返回修订控制系统,就像您需要始终管理锁一样。 – 2009-06-19 18:35:13

0

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