3. 使本地更改与 CVS 资源库同步
如果一个项目开发人员准备提交他/她的工作,那么首先要执行更新操作。这会针对引入的更改核对资源库,并将这些更改添加到该开发人员的本地工作台。这样确保了开发人员知道这些更改可能会影响他/她将要提交的工作的完整性。使用项目上下文菜单中的 Compare With... 选项将本地版本与资源库中存储的代码进行比较(请参阅图 5)。
图 5. 比较本地版本与资源库中的版本
下一步是解决最后出现的任何冲突,并设法再次编译代码。如果一切正常,那么从项目上下文菜单使用 Team -> Commit... 选项执行提交操作,如图 6 所示。这会使所有更改都集成到资源库中。
图 6. 将更改提交到远程资源库
4. 管理资源库
CVS 允许开发人员将更改隔离在开发的某些独立路径之内,这些路径称为分支。当一个开发人员更改某个分支上的文件时,这种更改不会出现在主干或其它分支上。那些分支被命名为子版本(subversion)或代码分叉(code fork)。稍后,由合并操作将更改从一个分支迁移到另一个分支(或主干)。然后提交这些修订。这样就有效地将更改复制到了另一个分支上。使用项目上下文菜单的 Team -> Branch... 选项,Eclipse 使开发分支之间的迁移变得容易。
当然,当开发团队维护大型资源库时,有必要控制项目内的提交和合并操作。Eclipse/CVS 集成提供了一种特殊的视图:CVS Repository History(请参阅图 7)。它给出了关于团队成员在资源库中所执行更改的快速预览。
图 7. 在 CVS Resource History 窗口中查看带注释的修订历史记录
Eclipse 平台提供了几个支持代码管理的实用程序。最有用的是补丁功能。它将出自两个来源(譬如本地工作台和资源库)的代码进行比较,然后创建一个包含代码差异的类似 UNIX 的补丁文件(请参阅图 8)。可以将该文件发送给开发人员以将源代码升级到最新版本。
图 8. 创建用于源代码分发的补丁
5. 断开项目与 CVS 的连接
当项目开发已经结束,并且团队希望冻结源代码时,可以从 HEAD 资源库删除该项目的最终版本。断开项目与 CVS 的连接将在该项目及其资源上禁用资源库操作,并删除与该项目相关联的 CVS 信息(这一操作是可选的)。
可以通过项目上下文菜单中的 Team -> Disconnect 选项执行断开连接操作。通过选择这个选项,会打开 Confirm Disconnect from CVS 对话框。在将该项目与资源库的连接断开之后,该团队必须确定如何处理 CVS 信息。第一个选项是“Delete the CVS meta information”;它将禁用 CVS 团队菜单操作并从文件系统中删除 CVS 文件夹及其内容。第二个选项是“Do not delete the CVS meta information”;它将禁用 CVS 团队菜单操作,但保留 CVS 元信息。
对第三方代码管理应用程序的支持
CVS 有几个重要的限制:它不能确定单个文件或整个文件集范围内同时进行的更改,它也不能检测文件之间的逻辑冲突。其冲突概念纯粹是文本意义上的,当对于同一基本文件的两个更改时间上非常非常接近,从而使合并命令受到干扰时,就会发生冲突。CVS 也不能提供任何类似于消息传递这样的交互式协作工具。幸运的是,CVS 并不是 Eclipse 平台所支持的唯一的源代码管理软件。开发人员可以通过插件扩展 Eclipse 平台的功能,而且目前(到 2003 年 3 月 4 日为止)已有 16 个可用于团队开发软件的插件。所有插件都是由 Eclipse 社区或商业软件供应商创建的。这些插件中的大多数添加了对第三方、商业源代码管理系统的支持。最有价值的插件是那些支持流行的企业代码管理系统(如 Merant PVCS 和 Rational ClearCase)的插件。例如,CVS-SSH2 插件允许通过 SSH2 会话访问 CVS,而 Microsoft Visual SourceSafe(VSS)团队提供程序插件添加了对 MS VSS 产品的支持(也可以在诸如 Linux 这样的非 Windows 平台上使用)。
但是,我本人所偏爱的插件是 Koi(请参阅参考资料以获取链接)。尽管它并非严格用于源代码控制,但这个创新的工具给协作开发注入了许多新的活力。其当前版本支持工作台到工作台的消息传递、共享标记、冲突更改通知、共享日历和事件通知。Koi 将 XML-RPC 用作其客户机-服务器体系结构中的通信模型。客户机是与“协作服务器”通信的单个 Eclipse 平台实例,而协作服务器也是一个 Eclipse 插件。Koi 使用以 JDBC 访问的关系数据库作为数据存储。可在参考资料中找到指向完整的、经过分类的 Eclipse 插件注册表的链接。
参考资料
请参加 eclipse.org 上的 Eclipse 平台社区。Eclipse 平台源代码遵循 Common Public License。Eclipse.org 还有一个 Eclipse 项目的术语和描述词汇表,以及技术文章和新闻组。Eclipse 平台白皮书(可在 Eclipse.org 主页获取)详细描述了 Eclipse 的主要组件和功能。
从 eclipse.org 下载 KOI 插件。
从 CVS 主页或 LORIA 站点下载 CVS 客户机、服务器和源代码。
请参阅 developerWorks 文章“Working the Eclipse Platform”,以了解关于 Eclipse 平台的背景知识。
请参阅 developerWorks 文章“Getting started with the Eclipse Platform”,这篇文章介绍了用 Eclipse 平台以及使用 Eclipse 插件编辑、编译和调试应用程序。
请参阅 developerWorks 文章“开发 Eclipse 插件”,这篇文章介绍了如何开发 Eclipse 插件。
从 developerWorks 的这些文章中获取关于 Eclipse 的更多信息:
在 developerWorks 开放源码项目专区查找更多有关 Eclipse 和开放源码参考资料。
关于作者
Pawel Leszek 是 Studio B 的一位作家,他是一位专长于 Linux/Win/Mac OS 系统体系结构和管理的独立软件顾问和作家。他具有许多操作系统、编程语言和网络协议方面的经验,尤其是 Lotus Domino 和 DB2 方面。Pawel 还在 LinuxWorld 上发表过一系列文章,他是 PC World 波兰版的 Linux 专栏作家。Pawel 和他的妻子以及可爱的小女儿住在华沙。欢迎提问并提出意见;您可以通过 pawel.leszek@ipgate.pl 与 Pawel 联系。