目录
简介
Subversion 是一个开放源代码的版本控制系统。它功能强大,可以替代常用的并发版本控制系统
(CVS)。它对 CVS 进行了多项改进,如版本控制目录和元数据,并且其体系结构可实现更简单、更灵活的网络访问。Oracle
为 JDeveloper IDE 提供了一个扩展功能,该扩展功能可将与 Subversion 交互所涉及的大部分手动工作自动化。有关
Subversion 的详细介绍,请查阅 http://svnbook.red-bean.com/ 上的“Version
Control with Subversion”(用 Subversion 进行版本控制)。
本指南将引导您完成安装 Subversion 并配置 JDeveloper 来使用它所必需的步骤。随后,还将介绍在
JDeveloper 中使用 Subversion 时常遇到的几种情形。
回页首
安装 JDeveloper
Subversion VCS 扩展
JDeveloper Subversion VCS 扩展基于 JDeveloper 生产版本
10.1.3.0.4。您将需要 J2EE 或 Studio 版;并将在未来版本中支持 Java 版。如果您尚未下载并安装
JDeveloper 10.1.3(J2EE 或 Studio),请从
http://otn.oracle.com/products/jdev 下载。
JDeveloper Subversion VCS 扩展可从 Oracle 官方更新中心获得。您可以使用
Help 菜单中的 Check for Updates 功能来安装更新:
使用 Check for Updates 向导,搜索 Official Oracle
Extensions and Updates 中心:
找到并选择 Subversion VCS Extension 项。选择该项还会自动选择
VCS Framework Extension 更新。
进入下载阶段:
下载更新后,您将看到一个摘要页面,其中有如下所示的信息:
向导完成时,可能会询问您是否要自动重启 JDeveloper:
选择“Yes”。
当 JDeveloper 重启后,打开 Versioning 菜单,选择
Select Version System,然后选择 Subversion。
如果配置成功,您将在结构窗格下面看到状态消息:
假定配置成功,请查看 Subversion 的首选项,检查 JavaSVN 客户端库是否按预期安装:打开
Preferences 对话框 (Tools > Preferences),然后在左窗格中选择 Versioning
| Subversion。
正确安装扩展后,您将看到与以下类似的信息:
回页首
连接 Subversion
信息库
Subversion 信息库保存所有版本控制数据。
如果您先前使用 Subversion 作为版本控制系统,则可以在 JDeveloper
中将连接该信息库。在 Subversion Navigator (View > Subversion Navigator)
中,右键单击 Subversion 节点,然后选择 New Repository Connection。在
Create Subversion Connection 对话框中,使用适当的访问方法协议 (http://、https://、svn://、svn+ssh://)
输入信息库位置。您还可以使用
file:/// 协议,但这样做需要安装其他软件,如附录二中所述。
提示:如果您要使用本开发人员指南中的示例,则需要安装一个名为
c:/svn-repos 的本地 Subversion 信息库,并使用
svn:// 协议与之连接。如果您还安装有单独的 Subversion 客户端软件,则 JDeveloper
Subversion VCS 扩展将允许您安装一个本地信息库。请参阅创建本地
Subversion 信息库。
如果您要保存 Subversion 信息库连接的详细信息,以便能够在以后使用或在其他机器上使用,则可以将这些信息导出到一个文本文件中。以后,您可以通过从文件导入这些详细信息来重建连接。要执行导出操作,请在
Subversion Navigator 中右键单击 Subversion 节点,然后选择 Export Connections。完成
Export Subversion Connections 对话框,然后单击 OK。要从文件中重新导入连接详细信息,请右键单击
Subversion 节点,然后选择 Import Connections。通过 Import Subversion
Connections 对话框,浏览到包含您希望导入的连接详细信息的文件,然后单击 OK。
回页首
将 JDeveloper
项目导入 Subversion
要提供用于本指南的示例,请创建一个新的 Java 应用程序和项目,该项目具有一个 Java
程序包和两个简单的 Java 类。指定
c:\jdev1013\jdev\mywork\test 作为项目位置。
您在使用 Subversion 控件之前于 JDeveloper 中创建的文件(如上述文件)必须导入
Subversion 信息库,然后再从其中签出。这些签出的文件就成为您的“工作副本”。
您将使用 JDeveloper 的 Import to Subversion 向导来导入现有
JDeveloper 项目。
在开始之前,您需要知道将存储 JDeveloper 项目的 Subversion 信息库的位置。对于本指南中使用的示例,使用了一个
URL,如下所示:
svn://localhost/
另一个有用的信息是您的 JDeveloper 应用程序所在目录的位置,但这将根据调用向导的上下文设置。就本指南而言,我们使用的示例是:
c:\jdev1013\jdev\mywork\test
通过右键单击您要导入的 JDeveloper 应用程序或项目(在本例中是 TestApplication)启动向导,然后选择
Versioning > Import Files。这将开启 Import to Subversion
向导。
在 Destination 页面上,确保 Repository Connection
框包含您先前创建的信息库的 URL(或连接名称,如果您已指定):
通常,您应该在信息库中选择要导入到的位置。对于本指南,您已经创建了一个新的空白库,因此,您现在可以保留
Path 选择为“root”。
在 Source 页面上,确保 Source Directory 框包含您的 JDeveloper
应用程序所在目录的位置。对于本指南中的示例,该目录应该是:
您不必在 Filters 页面上进行任何更改。
在 Options 页面上,确保已选中 Perform Checkout 复选框:
单击 Finish 完成导入操作。
展开 TestApplication 节点及其下面的节点,可以看到以下视图。
由于您允许向导签出导入的文件,因此这些文件显示在导航树中,且旁边有一个版本号。
在 Subversion 中,版本号指的是整个信息库而不是其中的单个文件的版本号。因此,文件旁边的版本号表示该文件的最新修订。在导入新的空白信息库时,所有文件的版本号都设为“1”。如果导入非空信息库,则版本号将根据信息库的现有内容指定,但所有新导入文件的版本号都是相同的。
在 JDeveloper 中,通过在 Application Navigator 中右键单击文件并选择
Versioning > Properties,您可以看到该文件的版本信息。
如果您设置首选项以显示导航器状态重叠图标(参见 Tools > Preferences
| Versioning | Subversion | General),则还可以看到指示文件版本状态的小符号。例如,桔黄色圆圈表示文件自上次在信息库中更新后未曾修改过。
现在可以在 Application Navigator 中看到的文件是 Subversion
“工作副本”文件,您随时可以使用它们。
回页首
签出文件
“签出”是当您希望创建 Subversion 信息库中存储的文件和文件夹的初始本地副本时所执行的任务。您处理的正是这些存储在
Subversion 信息库外的本地副本。
如果您使用 Import to Subversion 向导时选中了 Perform Checkout
向导,则已经签出导入的文件。
例如,要独立于导入操作签出文件,请在 Subversion Navigator 中,右键单击连接节点(在示例中为
svn://localhost),然后选择
Check Out。确认您要从根节点签出。系统会为签出文件建议一个位置。为了避免与作为导入操作的一部分而签出的文件相混淆,将目标更改为
c:/work,然后单击
OK。
现在,您从 Subversion 信息库签出的文件将出现在 Application Navigator
中,它们旁边有一个版本号。
回页首
添加和提交文件
当您在 JDeveloper 中创建新文件时,如果要对其使用版本控制功能,并希望其他开发人员能够使用它们,则必须将它们添加到
Subversion 控件。为此,您需要使用 JDeveloper 的 Add 命令,然后使用 Commit 命令。
在 Application Navigator 中,创建一个新的 Java 文件 (Class3.java)
作为版本控制应用程序的一部分。
您将看到,新文件的导航图标是具有蓝色背景的白色斜交叉线。这表示,目前版本控制系统不知道该文件,您应该添加它。
在添加之前,应查看 JDeveloper 工具,该工具将帮助您记录应对信息库进行的所有更改。如果您尚未开启
Pending Changes 窗口,请通过选择 Versioning > Pending Changes
来开启。该窗口的 Candidates 选项卡将是桔黄色的,这表示它包含您还未看过的更改。单击选项卡,您将注意到,其中列出了您创建的文件
(Class3.java),其状态为“Not versioned”。
您可以在此处将 Class3.java 添加到 Subversion 控件。在未来版本中,Pending
Changes 窗口还将告诉您是否已经对信息库中的文件进行了更改,并允许您更新本地副本(如果您打算这么做)。
要将 Class3.java 添加到 Subversion 控件,请执行下列操作之一:
- 在 Application Navigator 中选择该文件,然后选择
Versioning > Add。
- 在 Pending Changes 窗口中右键单击该文件,然后选择 Add。
- 在 Pending Changes 窗口中选择该文件,然后单击 Add
图标 。
上述任何一种方法都会开启一个对话框,您可以通过这个对话框确认文件添加。一旦添加,导航图标就会变为小型黑色十字叉:
这表示,虽然 Subversion 知道了有该文件,但该文件还不是信息库的一部分。要使该文件成为信息库的一部分,您可以使用
JDeveloper 的 Commit 命令:在 Application Navigator 中选择 Class3.java,然后选择
Versioning > Commit。这将开启 Commit Resources 对话框。您可以使用该对话框中的
Comments 框来描述您对该文件执行的操作。在本例中,您可以添加注释“Initial commit of Class3.java”。当您查看文件的版本历史时,可以看到这些注释,并且它们将帮助您和项目的其他开发人员识别各个版本。
提示:在现场开发环境中,为了避免不必要的冲突以及带来的解决工作,您应该在提交文件之前更新这些文件。