导读:
ECLIPSE的SUBVERSION插件
摘要 图1:使用Eclipse Update Manager安装Subclipse 图2:选择最新的Subclipse更新版本 图3:选择安装位置 一旦重启Eclipse,用户就会在Preference对话框中看到一个新的SVN区域,并且还会看到有关Subversion活动的其他视图。可以使用Window -> Show View -> Other...菜单将这些视图添加到Java Perspective中。 图4:添加关于Subversion活动的视图 在Subclipse中配置SVN接口 可以配置Subversion服务器来使用下列协议之一:
图5:选择适配器
连接到CodeShare上的SVN库 现在就可以连接到Subversion库了。对于dev2dev CodeShare上的项目,可以在访问选项页面中看到一个库的URL,可以从Version控制项目菜单中找到该页面。 这里是一个例子 。CodeShare SVN服务器要求用户使用的用户名和口令与其在dev2dev网站上所使用的相同。 图6:连接到Subversion库 图7:接受SSL证书 图8:查看SVN库中的现有项目 查看SVN中的现有项目 在SVN Repository视图中可以看到,在许多CodeShare项目以及使用Subversion的其他项目中都可以看到一种共同的布局,通常如下所示: [pre] https://xjms-ra.projects.dev2dev.bea.com/svn/xjms-ra +-- branches +-- www +-- xjms-ra +-- mqseries (work in progress) +-- activemq +-- tags +-- xjms-ra +-- 0.0.1 (stable versions or releases) +-- 0.0.2 +-- trunk +-- www (project web site) +-- xjms-ra (project source)[/pre] trunk文件夹中包含主线开发源代码;tags文件夹中包含稳定版或发行版;branches文件夹中包含来自替代开发线上的代码。在Subversion中,标签和分支仅仅是选中的源代码快照的版本化副本。若想获得更多详细内容,请参阅Subversion book。 可以在SVN Repository视图中选择当前项目的主线或者特定的标签或分支,并从弹出菜单中选择Check Out As...动作。接着就会出现一个指导性的标准New Project Wizard,它允许用户选择项目类型(例如,Java或Simple Project)、项目名称和位置,并在需要时配置Java build路径。 为新的CodeShare项目配置SVN库 版本控制库是任何项目的基础架构的重要部分,对于开源项目(包括CodeShare上的项目)而言,它还在开发人员与其他社区成员之间的交流中起着重要作用。例如,它允许终端用户为最新的代码捐献补丁,并为重要的修复提供早期更新机制。由于它的重要作用,为一个新项目配置SVN库并从一开始就将所有的项目代码置于版本控制之下就显得非常重要了。 创建了新CodeShare项目之后,SVN库就包含了trunk、tags和branches文件夹,以及trunk下的www模块,它包含项目Web首页的index.html文件。可以在SVN Repository视图中验证这些,并使用该视图中的弹出菜单上的动作创建缺少的文件夹。 我们假设所有的源代码、build脚本、文档和其他项目资源被组织为一个Eclipse项目,那么就可以在Package Explorer或Navigator视图中使用弹出菜单中的Team -> Share Project...动作。Share Project Wizard会要求用户选择SVN库类型,然后在下一个页面中,可以选择一个现有库或配置一个新库。 图9:在Share Project Wizard中选择SVN库类型 图10:指定模块名 使用SVN库 当项目连接到SVN库以后,在Package Explorer和Navigator视图中会弹出一个Team菜单,显示特定于Subversion的全部动作。可以直接运行Commit、Update、Add to svn:ignore,以及Version Control with Subversion一书中所描述的其他动作。该书中的内容也可以在Help -> Help Contents -> Version Control with Subversion下的Eclipse帮助系统中找到。 Subclipse插件还允许使用Eclipse的Team Synchronize视图,它可以使用户从库中清楚地观察到哪些项将要提交、哪些项已经被其他开发人员更改并需要更新。从这个Synchronize视图中还可以执行大多数的SVN命令。 可以使用弹出的Team -> Synchronize with Repository菜单或位于主工具栏上的Synchronize...向导按钮将项目或工作集添加到Synchronize视图中。如果看不到该按钮,那么请将Team命令添加到当前视图中;可以使用Customize Perspective对话框添加,该对话框可从主工具栏上的弹出菜单中获得(单击任意空白处),然后,使用Window -> Save Perspective As...菜单以相同的名称保存透视图。 图11:将命令组添加到当前透视图中 图12:同步工作区、工作集或选中的资源 图13:安排自动刷新的时间 修补Subclipse 当在Subclipse中遇到问题时,可以有多种选择。如果是瑕疵问题,那么可以简单地选择不使用该产品或等待下一个版本。还可以搜索问题跟踪系统以及邮件列表档案[url=mailto:[email protected]?subject=][email protected]和[url=mailto:[email protected]?subject=][email protected],有可能找到当前问题的应对措施或解释。如果这样没有帮助,那么可以在邮件列表中咨询此问题;如果有兴趣试着自己解决,那么,下面的段落将简要介绍如何开始调试和修补Eclipse。但是,如果非常希望有所捐助,那么一种好的方法是订阅[url=mailto:[email protected]?subject=][email protected]邮件列表,从而使您所做的努力与其他开发人员相协调,根据项目路线图调整您的想法。 着手开始真的非常容易,即使您以前从没有使用过Eclipse插件。需要将Subclipse项目放入Eclipse工作区中。Subclipse项目的Subversion库位于http://subclipse.tigris.org/svn/subclipse/,可以使用以前安装的Subclipse插件或者诸如命令行Subversion客户端或TortoiseSVN之类的外部工具来查看代码。还有一种非常好的办法是在tigris.org Web站点上注册,并请求Subclipse项目的Observer角色。然后,就可以使用相同的用户名连接到Subversion库了(也可以用“guest”/“guest”进行只读访问),还可以在问题跟踪器(一个集成的Bugzilla库)上发表评论,并附上对问题的补丁(如果有的话)。 一旦连接到版本控制库,就需要在自己的工作区中检查下述项目。对每一个模块选择Check Out As...,选择一个位置和项目名(建议使用下表所列出的实际的插件名),并单击Finish。
当所有的项目都在Eclipse工作区中之后,就可以试着运行了。使用Run -> Run...菜单(或Debug,在调试器下运行),启动新的Eclipse Application类型,并在Workspace Plug-Ins列表中选择Subclipse插件。如果使用已安装的Subclipse运行IDE,那么应该在External Plug-Ins列表中取消对Subclipse插件的选择,但是要使其他插件均保持选中状态。 图14:运行Eclipse应用程序 假定已经完成了最棘手的部分,并且已经设法实现了更改,那么现在就该创建补丁并将其附在Subclipse 问题跟踪库中的原始问题上了。在创建补丁以前,请确保从版本控制库中选择最新的更改(如果有的话),并最后一次测试更改。如果一切都没有问题,那么就使用Team -> Create Patch...菜单来启动向导。选择Save To Clipboard或Save In File System,并指定是否需要对子目录进行循环扫描来查看更改。 图15:创建补丁 结束语 诸如Subclipse插件之类的Eclipse平台开源扩展可以提高开发人员的生产力,降低出错的可能性,并增强开发团队内部的交流。本文演示了如何安装、配置和使用Subclipse插件来从Eclipse IDE内部与Subversion版本控制系统进行交互。 以Subclipse插件为例,本文还演示了如何设置一个环境以进行Eclipse插件开发、如何调试现有插件、如何创建补丁。事实上,任何Eclipse用户都可以为该开源扩展以及Eclipse平台本身捐献想法和补丁。 补充锁定原因和解决: 在eclipse里提交和更新文件是抱错。 Attempted to lock an already-locked dir svn: Working copy 'F:/workspace/WebFrame/WebRoot/attach/prodrelation' locked 执行“清除”操作后,问题解决了。 但还是没搞懂是什么原因造成的。 |
本文转自
http://zhangxinjie.blog.ccidnet.com/blog-htm-itemid-204797-type-blog-do-showone-uid-20630.html