0

最近有人告诉我,我必须将我们的 Perforce 存储库迁移到 TrueChange (McCabe TrueChange)。在那之前我还没有听说过 TrueChange。到目前为止,我已经使用过 cvs、subversion、vss 和 perforce。我正在努力寻找任何明智的说法来进行这种转变以及对 TrueChange 的期望。我喜欢与 Perforce 一起工作,我发现过渡到它相当简单。

你能帮我吗?我正在使用 VS2005、RAD 和 CruiseControl。

4

1 回答 1

2

自 1999 年 9 月以来,我一直在使用 TRUEchange,我认为您很幸运,您被告知必须从 Perforce 迁移到 TRUEchange。

我曾使用过许多开源、本土和商业 CM 软件系统,而且到目前为止,TRUEchange 是我用过的最好的产品。

让 TRUEchange 如此出色的四件事(不止四件事——这些是四个关键):

  1. 基于更改集而不是基于文件差异. 如果将 50 个文件作为一个组签出、修改然后重新签入,则对这 50 个文件的更改是一个称为更改集的单元。TRUEchange 比我用过的任何 CM 软件都能更好地处理并发并行基线。Cset 可以迁移到编号较低的基线或迁移到编号较高的基线。迁移/合并冲突很少见,客户端内置了 3 路合并工具,允许用户非常轻松地处理冲突。更改集可以从特定版本中删除(以任何顺序)并且可以重新添加。如果在 5 个不同的更改集中对文件进行了 5 次更改,则可以删除第二个更改,同时保留更改 1、3、4和 5 完好无损。它还保留完整的元数据,以支持将文件从一个目录移动到另一个目录、重命名文件或重命名目录。可以删除文件,并且有一个更改集可以删除该文件。由于删除文件的更改集保留了文件的文件 ID、文件名和父目录,因此可以随时恢复文件,而无需再次将它们加载到系统中。恢复文件时会恢复更改历史记录。

  2. 基于项目版本而不是基于文件版本. 当一个版本被检查点(类似于标记)时,整个项目中所有文件的内容都被记录为一个单元。您不必跟踪 5000 个文件的各个版本号,您只需跟踪包含这些文件的项目的检查点。维护已为 QA 或部署构建的内容的历史记录“非常简单”,因为不必跟踪文件版本。TRUEchange 使用构建配置将相关项目组合在一起,以及文件在构建过程中提取到的文件路径 - 在 Unix/Linux、Windows 或 VMS 文件系统上。我们使用三段版本号,例如 2.1.0。版本的第一个构建(或迭代)将是 2.1.0.1。第二个是 2.1.0.2 等等。当我们运行构建并完成时,我们获取构建配置的详细信息并将数据插入到两个数据库表中。一张表包含构建配置级别信息,例如构建配置名称、主要版本号、次要版本号、子版本号、迭代、描述性标题、构建类型(QA 或生产)以及完成日期和时间。另一个表包含指向第一个表中构建配置级别行的外键,并包含项目名称、主要版本号、次要版本号、子版本号和用于运行构建的检查点的迭代。通过构建配置级别信息和项目级别信息,我们可以查询数据库并立即了解任何构建运行的确切内容。我们目前有自 2001 年 9 月以来的构建历史 - 将近 33 个,500 个构建和超过 228,000 个子记录。在一两分钟内,我可以为过去 8 年中的任何构建运行重新创建源目录结构,并且知道它绝对准确并且与最初的构建运行相同。如果我必须使用基于文件版本的 CM 系统来做到这一点,那么重新创建任何给定的构建都需要很长时间。

  3. 命令行命令、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 文件等)。重新创建启动和停止脚本(通过自动化过程)并在新服务器上启动存储库。无需客户干预。我们管理着近 5200 万行源代码和二进制文件(如 gif 文件、jpeg 文件等)。重新创建启动和停止脚本(通过自动化过程)并在新服务器上启动存储库。无需客户干预。我们管理着近 5200 万行源代码和二进制文件(如 gif 文件、jpeg 文件等)。

  4. 巡航控制插件。随着最新版本的软件,McCabe 开发了一个 CruiseControl 插件,允许 TRUEchange 集成。我们目前还没有使用 CruiseControl,因为我们的软件非常复杂,具有许多相互依赖关系。这不是 TRUEchange 的缺点,而是 CruiseControl 的缺点。它似乎最适合不严重依赖其他系统的独立系统。

为了轻松地从另一个 CM 产品迁移到 TRUEchange,它只是掌握面向项目与面向文件的概念,然后设置存储库以满足安全要求(谁可以访问什么以及在什么级别)和逻辑项目组织软件系统。如果存储库和项目设置正确,只需将文件从旧的 CM 系统中提取出来,然后将它们批量加载到 TRUEchange 项目中即可。

于 2009-06-20T02:19:04.490 回答