选择有效的修订控件

时间:2010-10-21 08:53:58

标签: performance version-control statistics scalability branching-and-merging

我们是一家公司,致力于小型和大型项目。有时在一个项目上有更多的开发人员5,10,20等。

我们正在寻找具有最佳可选属性的有效修订控制系统:

性能问题 - 一个文件大小,复杂的目录结构

可扩展性 - 支持5,10,25个开发人员,10,50,200个项目

合并分支

修改和标记代码更改

开发人员,领导者,供应商,领导者发展,客户等的统计和报告

支持各种技术的开发 - .NET,JAVA,PHP,Oracle,Delhpi,ABAP / SAP。

此时我们正在SVN, VSS, Rational rose, ClearCase and JIRA之间做出决定。这些解决方案中是否有一些支持错误跟踪和知识库存储?

也许有人有关于这个主题的经验,可以提出建议。

提前致谢。

最好的问候。

5 个答案:

答案 0 :(得分:2)

我曾在各种公司工作过SVN,VSS和clearcase。我一直认为SVN是其中最好的。但是,现在有一些更好的分布式版本控制工具(如mercurial,git,bazaar)可供您使用。

以下是我对SVN / clearcase的主要看法:

效果问题     SVN:我已经看到subversion可以处理单个文件大小为2GB的内容。复杂的目录结构对于颠覆并不重要     Clearcase:我在处理大型文件/存储库时已经看到了明显的性能/网络问题。在我的情况下,它是我的Windows系统中的NFS挂载,并且在执行构建时使得速度非常慢。

<强>可扩展性     SVN&amp; clearase具有良好的可扩展性选项。然而,svn在互联网上拥有相当不错的社区和支持,缺乏透明度。但是,如果是clearcase,您将获得付费支持并快速解决任何可伸缩性问题。

合并分支    在这种情况下,Clearcase是明显的赢家。 Clearcase有一段时间具有相当好的合并能力。 SVN在这方面仍在改进,但最近在svn合并功能方面做出了重大贡献。

修改和标记代码更改    IMO,它在clearase和svn之间几乎相同。但这些惯例有点不同。

统计和报告    clearcase具有良好的报告功能,优于svn。不过,在这种情况下,我觉得明确是一个过度杀手。 SVN有许多简单的报告工具(如glassfish),它们能够提供整洁的报告。

支持各种技术的开发    我已经研究过上面的大部分技术,但我相信这两种工具都对所有可能的环境(如Visual Studio,eclipse等)提供了不错的支持。

BTW,rational rose是一个UML工具,与版本控制无关。 JIRA是一个错误跟踪工具,它与SVN很好地集成。我建议你看看trac与svn集成。

希望以上帮助

答案 1 :(得分:1)

我们对SVN有很好的经验。它对代码库有很好的控制,很容易看出文件发生了什么 它还通过第三方插件具有良好的Visual Studio交互性。我们使用VisualSVN,它不是免费的,但非常好。

VSS并不好。搞乱事情很容易。

ClearCase非常好,但许可证非常昂贵。它通常对代码库有非常严格的控制,但如果出现问题则很难修复它。

答案 2 :(得分:1)

无论需要什么,都不要使用VSS。从不。

据我所知,Jira不是版本控制系统,而是错误/问题跟踪系统(非常好)。

正如其他答案中所说,SVN是一个非常好的解决方案,很多项目都成功使用。较新的分布式解决方案包括Git,Mercurial(Hg),Bzr,......但我不会在非分布式团队中使用分布式版本控制系统。承担DVCS需要付出实际的初始成本。

我是否已经说过:在没有环境的情况下不要使用VSS。

答案 3 :(得分:0)

上面的列表主要包含旧版修订控制。我会不惜一切代价避免使用VSS,因为它只能锁定文件 - 一次只有一个用户可以更改甚至签出文件。

如果您仍想要单个本地化存储库,我会推荐SVN。它易于使用,并通过第三方工具具有良好的Visual Studio交互性。

如果您需要完全集成的Microsoft技术解决方案(错误跟踪,源代码控制,持续集成等),我建议使用TFS。

如果您计划进行大量分支/合并,请查看mercurial / GIT以获取distrubutes源代码控制。

答案 4 :(得分:0)

  • Clearcase只有在您知道如何使用它且非常昂贵时才是好的
  • TFS表现不佳。它太慢了。
  • SVN没有做好分支。作为旁注,所有主要的OSS项目已经将其放弃了Git或Mercurial
  • 避免使用VSS
  • 我绝对会选择Jira + Plastic SCM
  • Hg和Git是优秀的选择,但你需要在大多数时间成为一个命令爱好者