从Clearcase迁移出去

时间:2009-08-06 15:22:13

标签: svn mercurial clearcase dvcs

我们正在从Clearcase迁移到另一个VCS(可能是SVN或Mercurial)。对于已经实现这种转变的公司,他们在选择其他VCS工具时发现了哪些重要因素,以及他们发现哪些做法可以缓解过渡?

7 个答案:

答案 0 :(得分:3)

要添加的一对是:

  • 性能:慢速开发工具会中断开发人员的思维过程
  • 电源(功能):合并有多好?像git这样的新工具比CVS和SVN等旧式工具有更好的合并支持和跟踪。 Git还提供了非常方便的工具,例如bisect,可以加快开发过程。
  • 社区支持:该工具被广泛接受的程度如何?你不想在接下来的五年里选择会出现在场外的东西。

答案 1 :(得分:3)

SVN和Mercurial都是优秀的SCM。许多开源项目都使用它们。如果您的选择只缩小到这两个,那么您和您的团队必须考虑的是:

工作流程和工作流程

您希望如何进行提交和分支?分布式还是纯粹集中式?这也与公司政策有关。如果您希望集中所有内容,请使用SVN。但这并不意味着你不能拥有Mercurial的中央存储库。 如果你的团队选择像Mercurial这样的DVCS,这是非常有益的,因为:

  • 每个人都有自己的本地副本。这使他们能够在家工作并进行本地提交
  • 每个人都可以在本地机器上进行本地分支。不要担心修订之间的合并,Mercurial与SVN相比具有良好的合并支持和相对简单的支持。
  • 并非所有人都必须拥有访问权限,因为您可以指定某人作为网守,从其他开发人员的计算机中提取修订版。这使您可以在将代码提交到中央存储库之前进行代码审查。

除此之外,两者都非常好,因为它们都具有良好(足够)的性能,良好的Windows支持(SVNHg)和良好的文档/书籍(SVN,{ {3}})。

答案 2 :(得分:2)

您需要考虑以下几个标准:

  • 您可以支持哪种数据策略(严格的中央存储库,其中只有一部分加载到开发人员工作区,意味着SVN)
  • 中央或分散的存储库,完整的历史记录重复? (像Mercurial或Git这样的DVCS)
  • 您可能会遵循什么样的合并工作流程(具有复杂合并或频繁变更的长期分支)

对于 migration (对于SVN或Mercurial),如果您使用ClearCase UCM会更容易,因为基线代表明确的“时间轴”(最接近类似于“修订版”) “)您可以用来导入其他(D)VCS 如果不是(Base ClearCase),您需要考虑您真正需要导入的历史部分。

答案 3 :(得分:2)

总的来说,我总是选择分布式版本控制系统(DVCS)。我没有尝试过mercurial但git;但这里的前提是一样的。

如果使用集中式系统,则必须使用该结构。如果您使用分布式系统,则不是。但仅仅因为你可以分发它,你没有必要。如果团队中有一个单一的中央存储库更有意义,那就这样做吧。

你不应该低估的是当地分支机构的力量。在集中式系统中进行分支相当麻烦,很少开发人员或功能分支。开发人员宁愿拥有多个工作副本或对其工作副本进行不安全的更改,以免破坏构建。通过分散式系统,开发人员可以在其上创建本地分支。由于显示停止错误而中断,他切换回主分支修复问题,将更改推送到中央存储库并更改回其功能分支。工作流程非常顺利。

此外,系统的分布式特性使其成为一个强大的系统。如果服务器停机,开发人员照常营业,他们甚至可以在彼此之间交换更改。

最后,开发人员可以将工作带回家,飞机上,火车上或者他们喜欢的地方。它们永远不会失去VCS功能并且可以进行适当的提交。

结果是开发人员关于VCS的行为是由公司政策定义的,而不是技术,您可以随时更改策略。

答案 4 :(得分:1)

第三方支持。系统是否为Visual Studio提供了成熟的SCC提供程序? (SVN是的,Hg不成熟)。

的Eclipse?两者都有很好的支持。

您的开发人员曾经是命令行突击队吗?然后第三方支持/插件可能不是问题。

答案 5 :(得分:1)

如果你要从好的Clearcase迁移出去;-)快速浏览一下Plastic SCM吧。大多数基本概念仍然存在,但所有痛苦的部分都消失了。而且它是分布式的。检查以下链接: http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html

答案 6 :(得分:1)

这是一个老线程,但我想贡献一点。 IMO,SVN已经开始运行了。现在公平地说,如果你有大约50个左右的用户并且没有做很多分支,那么肯定,它不会比CC差。然而,与CC一样古老且复杂,它仍然具有许多成熟的功能。因此,如果您是一个成熟的CC商店,SVN将无法满足您的需求。事实上,最好的做法是减少分支并在主干上工作。所以更好的选择(鉴于上述选择)将是Hg。另外,我偏向于dvcs。真正的dvcs是......而且只有2个OSS选择:Hg和git。目前有一个商业系统,塑料公司。如果你已经习惯了文件历史的可视化表示(vtree浏览器,或者CC UCM中的组件树浏览器,那就认为它就是所谓的),塑料可能是一个更可行的选择。因为我已经看到它有图形vtree和其他东西,如分支树资源管理器。我记得支持CC,我们很多人会轮流在白板上画出“过程”模型。塑料有内置的。无论如何,我再次偏向dvcs ...我厌倦了svn和cc,并尝试使用昂贵的复制工具和主控脚本。 dvcs很简单!如果你是一个顽固的linux / unix开发商店,git可能是一个更好的选择。如果更多的窗户或混合,Hg和塑料看起来更好的选择。更多的塑料图形和视觉效果。我认为Hg错过了很多你习惯使用CC的权限和访问控制......所以塑料可能在这里有优势。希望这有帮助,祝你好运!