Oracle9i SCM 和 Oracle9i Forms 集成
 

2009-07-24 来源:oracle.com

 

简介

Oracle9i Forms 和 Oracle9i Software Configuration Manager (SCM) 是相集成的,因此可以直接从 Oracle9i Forms Developer 进行软件配置管理。Oracle9i SCM 提供源控制选项,如检入/检出功能、版本建立、对比和合并实用程序以及影响分析。使用 Oracle9i SCM,能够有效地管理 Forms 开发环境,允许并行开发并对多个开发分支进行控制。本文档说明如何使用集成的产品。

安装

Oracle9i Forms Developer 和 Oracle9i SCM 属于 Oracle9i Developer Suite 的一部分。必须安装一个在 Oracle 数据库上构建的 SCM 仓库。请按照 SCM 安装指南进行操作,并确保可以从仓库对象浏览器连接 SCM 仓库。 从 Windows Start 菜单选择 Programs / Oracle9iDS / Oracle SCM,然后选择 Use as Source Control for Developer,即可实现从 Forms Developer 访问 Oracle9i SCM。这种操作对每一客户端是一次性的,它设置所需的注册表变量,支持从 Forms Developer 启用 SCM 菜单选项。

打开仓库对象导航器 (RON) 并创建一个默认工作区。它将具有一项 LATEST(MAIN) 规则,表示在此工作区将看到 MAIN 分支上文件的最新版本,但范围只包括当前连接用户能够访问的那些容器(应用程序和文件夹)。

加载现有的表单

通常需要将现有的表单文件加载到 SCM 仓库中。必须确定是否要保存所获得的对象,如 .fmx 文件。其好处在于,属于一个可执行应用程序的所有文件能够使用其源代码进行分组。不利之处是需要有存储空间。

在 RON 中创建一个文件夹,然后检入它并再次检出。此操作将 MAIN 分支的版本 1.0 分配给文件夹。将所有表单文件上传到此文件夹中(参见图 1),并检入所有的文件和文件夹。这两项操作均可通过鼠标右键的上下文相关菜单来执行。

从这一点来看,根据此工作区的内容创建配置很有用处。它的作用与校验点相似,在必要时能够方便地访问原始文件集。要访问原始版本,需要创建一个基于此新配置的工作区,将文件夹映射到本地硬盘上一处新的区域,并下载这些文件。

图 1 仓库对象导航器显示工作区、文件夹和已建立版本的 fmb 文件

使用已建立版本的表单

Oracle9i Forms Developer 需要将 .fmb 文件和其他相关文件放置在可访问的磁盘上,即放置在 Oracle9i SCM 仓库以外的地方。因此,要编辑 .fmb 文件,必须首先将其下载到文件系统。只需将父文件夹映射到一个新的本地文件目录并下载文件。可以对单个文件执行此操作,或者更常见是在一个具有很多相关文件的表单应用程序中进行,则可以下载整个目录。请注意,此时所有下载的文件是只读的。

启动 Oracle9i Forms Developer,并从文件系统的新目录中打开 .fmb 文件。如果进行了更改并试图保存文件,则操作系统会发现该文件只读,禁止保存。通过检出该文件,将其设为读/写状态。转到 File/Administration Check Out 选项。在输入 SCM 仓库用户名和口令后,选择先前创建的工作区并同样选择正确的 SCM 仓库容器。在检出时,该选项可以改写该文件的本地文件系统版本。通常这样是正确的,并可确保正在被编辑的文件是正确的版本;但是,如果已经进行了很多修改却没有意识到此 .fmb 是只读时,则可以选择检出文件而不改写本地文件。这样可以保存那些新的更改。

对表单进行必要的更改并保存文件。在测试了表单的 .fmx 可执行文件后,利用 File / Administration Check In 菜单选项,将 .fmb 检入到 SCM 仓库中,于是在 MAIN 分支上创建了版本 1.1。返回 RON 并高亮显示更改后的表单。检查更改后的表单的属性表,注意其版本现在是 1.1。请注意,文件夹的版本并未更改,只有在添加或删除文件时对文件夹进行版本操作,记录文件夹中内容的变化。

检查更改

不能仅使用文本比较实用程序来比较表单的 .fmb 文件。Oracle9i SCM 提供了 .fmb 比较工具,利用它可以鉴别表单的两个版本间的变化。在 RON 中选择一个 .fmb 文件并与以前的版本进行比较,或者打开版本历史查看器,比较同一文件的两个版本,如图 2 所示。

图 2 版本历史查看器和比较窗口,显示一个表单的版本 1.0 与版本 1.2 之间的差别

并行开发

可能有许多原因需要进行并行开发:

  • 分布式开发团队
  • 相似产品的多个用户版本
  • 多个版本发布周期
  • 早期版本中的错误修复

要修复应用程序早期版本(不是最新的代码)中的错误,需要根据报告错误的版本中的代码的配置创建一个工作区。虽然通常在发布每个产品版本时创建配置,但可以在任何时间创建代码的配置或编目。根据配置创建一个新的工作区,使用除 MAIN 以外的分支作为默认检入分支,例如:

LATEST(forms_bugfix_br)

INCLUDE_CONFIG(forms_cfg{MAIN;1}=Configuration)

以上语句将识别分支 'Forms_bugfix_br'上文件的最新版本,如果分支上不存在文件,则使用配置'Forms_cfg'中可用的版本。请注意,在 INCLUDE_CONFIG 中提及的 MAIN 是指要检入配置的分支,而不是指必须检入配置中的文件的分支。因此,如果一个文件被工作区检出,并被检入到新的分支中,则文件的新版本出现在新的工作区中。当编辑一个表单并将其重新检入到分支时,将看到类似图 3 所示的版本历史。

图 3 并行开发的版本历史视图和比较

请注意,在以上示例中,没有显示表单版本 1.2 中所做的原始更改(如图 2 所示)。有几个对象已经被更改,并添加了一个新的视频属性。将来的某个时候,分支上的文件将会被并入 MAIN 分支。有可能进行自动合并,但是当合并引擎不能确定应包含哪个版本的对象时,这种冲突会导致打开一个如图 4 所示的合并窗口,允许开发人员自主选择包含哪个版本。将 MAIN 分支合并到错误修复分支的过程允许对分支进行测试,而不会破坏仍然处于 MAIN 上的整个应用程序。一旦测试完成,需要将合并再返回到 MAIN 分支。这种操作看似多余,却能确保 MAIN 分支不会包含不可用的代码。

图 4 合并版本 1.2 与版本 1.0.1.0,复选框选择在合并文件中显示的正确项目

将 MAIN 分支合并到错误修复分支的过程允许对分支进行测试,而不会破坏仍然处于 MAIN 上的整个应用程序。一旦测试完成,需要将合并再返回到 MAIN 分支,如图 5 所示。这种操作看似多余,却能确保 MAIN 分支不会包含不可用的代码。

图 5 合并版本 1.2 与 1.0.1.1,然后再合并 1.0.1.1 与 MAIN 上的 1.3

使用区分和合并工具允许多个开发人员使用同一文件并合并他们的更改。这种方法可能不适用于所有的开发环境,但 Oracle9i SCM 支持需要它的开发团队进行这一复杂级别的工作。选择严格锁定策略时,当对象的一个版本在分支上已经被检出时,该策略防止此对象的任何版本在该分支上被检出,这样就可避免两个开发人员在单个分支上编辑同一文件。

总结

世界上一些最大的软件开发项目使用了 Oracle Forms。这些项目必须进行代码控制。结合 Oracle9i SCM 和 Oracle9i Forms Developer,通过 Oracle9i Forms Developer 菜单进行检入和检出,可以实现简单的代码控制。这样也使得开发团队能够比较和合并表单,从而促进并行开发。为版本'编目'并将它们作为整体配置进行管理确保每个发布版本具有一组已知的版本,从而能够对早期版本进行错误修复。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织