|
|
1
David Platt
17 年前
自1999年9月以来,我一直在使用TRUEchange,我认为您很幸运,您被告知必须从Perforce迁移到TRUEchange。
让TRUEchange如此出色的四件事(不止四件——以下是四个关键因素):
-
-
基于项目版本而不是基于文件版本
. 当检查某个版本时(类似于标记),整个项目中所有文件的内容都作为一个单元记录。不必跟踪5000个文件的单个版本号,只需跟踪包含这些文件的项目的检查点即可。维护为QA或部署构建的历史记录“非常简单”,因为不必跟踪文件版本。TRUEchange在Unix/Linux、Windows或VMS文件系统上,使用构建配置将相关项目和文件提取到的文件路径组合在一起。我们使用三段版本号,如2.1.0。版本的第一个构建(或迭代)是2.1.0.1。第二个是2.1.0.2,依此类推。当我们运行构建并完成时,我们获取构建配置的详细信息,并将数据插入到两个数据库表中。一个表包含构建配置级别信息,如构建配置名称、主要版本号、次要版本号、子版本号、迭代、描述标题、构建类型(QA或生产)以及完成日期和时间。另一个表包含一个外键,该外键指向第一个表中的生成配置级别行,并包含项目名称、主版本号、次版本号、子版本号以及来自用于运行生成的检查点的迭代。通过构建配置级别信息和项目级别信息,我们可以查询数据库并立即知道任何构建运行的确切内容。我们目前拥有自2001年9月以来的构建历史-近33500个构建和超过228000个儿童记录。在一两分钟内,我可以为过去8年中的任何构建运行重新创建源目录结构,并且知道它绝对准确,与最初的构建运行完全相同。如果我必须使用基于文件版本的CM系统,那么重新创建任何给定的构建都需要相当长的时间。
-
命令行命令、Windows GUI、Java GUI客户端(StreamCM)、可定制性和可靠性
. TRUEchange有大量的命令行命令,允许高度自动化。使用shell脚本和PHP,我们已经能够开发完全自动化的构建周期和定制的web界面,供开发人员与CM系统交互。开发构建以配置管理用户的身份运行,从TRUEchange检索文件从网页运行。这保证了由工程师签入的代码将在CM运行时生成。StreamCM在多种平台上运行—Unix(Solaris、AIX、HP-UX、Irix等)、Linux(Red Hat、Fedora、Gentoo等)、Windows(XP、Vista)和MacOS(PPC和Intel)。这个统一的接口允许开发人员使用多个平台,并且无论操作系统如何,客户端的行为都是相同的。TRUEchange可以使用脚本语言进行高度定制。我们定制了TRUEchange,以便与在PostgreSQL下运行的CM数据库交互,因此基于web的应用程序可以从数据库中读取元数据,而不是查询CM系统。我们还定制了TRUEchange,通过与Oracle数据库的连接与Mercury Interactive Test Director中的问题跟踪系统进行交互。它是高度可靠的。在近10年的时间里,我们遇到了一次存储库故障,需要返回备份—由于磁盘错误。由于TRUEchange维护针对每个存储库发布的事务,因此我们能够按照最初应用的顺序重播修改存储库的事务。这是一个使用较少的存储库,但只需10分钟即可重播三天内的所有事务。我们拥有200多个用户许可证,我们从未有超过两名CM工程师支持用户群。2008年,另一位CM工程师和我执行了6300多个QA构建,并为生产部署创建了1800多个部署映像。与我使用过的任何其他CM系统相比,TRUEchange所需的管理要少得多,而且是一个巨大的优势。另一个好处是McCabe愿意根据客户的需求改进产品。多年来,我们提出了许多改进要求,他们几乎满足了每一个要求,超出了我们的预期。TRUEchange的另一个优点是它被设计为在分布式环境中运行。许可证管理器控制对系统的访问,并跟踪存储库实际运行的服务器。我们有一个许可证服务器和四个运行97个存储库的Linux服务器。如果我们需要添加服务器以容纳其他存储库,那么只需启动这些服务器、创建存储库(或将现有的存储库移动到新服务器)、重新创建启动和停止脚本(通过自动化流程)以及在新服务器上启动存储库即可。不需要客户干预。我们管理了将近5200万行源代码和二进制文件(如gif文件、jpeg文件等)。
-
CruiseControl插件
. 在最新版本的软件中,McCabe开发了一个CruiseControl插件,允许TRUEchange集成。目前我们还没有使用CruiseControl,因为我们的软件非常复杂,具有许多相互依赖性。这不是TRUEchange的缺点,而是CruiseControl的缺点。它似乎最适合于不严重依赖其他系统的独立系统。
为了方便地从另一个CM产品迁移到TRUEchange,itt仅仅掌握了面向项目与面向文件的概念,然后设置存储库以满足安全需求(谁可以访问什么以及在什么级别访问)和软件系统的逻辑项目组织。如果存储库和项目设置正确,那么只需将文件从旧的CM系统中拉出并将其批量加载到TRUEchange项目中即可。
|