`
莫生气
  • 浏览: 866752 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

转:使用SUBCLIPSE——针对ECLIPSE的SUBVERSION插件

    博客分类:
  • Java
阅读更多

摘要

  Subversion (SVN)是一个版本控制系统,是CVS的极具竞争力的替代品。它支持CVS所缺少的一些重要特性,比如版本化的重命名、目录和元数据;还支持原子提交和通过HTTP/HTTPS的远程访问。许多开源项目使用Subversion作为版本控制系统,其中包括BEA的dev2dev CodeShare 站点上的项目。 有一个简短的指南介绍了如何为CodeShare建立支持Windows的命令行SVN客户端和Tortiose SVN。然而,使用自己的IDE中的Subversion库才有意义。

   本文描述如何在Eclipse IDE中使用Subversion,具体来说,介绍了Subclipse插件的安装和使用。顺着这个思路,我还将展示如何使用产生的配置来修改或扩展Subclipse插件本身。

安装Subclipse

  安装Subclipse的最好方法是使用Eclipse Update Manager。在Eclipse 3.1中,它位于Help -> Software Updates -> Find and Install...菜单下。请选择Search,查找要安装的新特性,并以http://subclipse.tigris.org/update作为URL添加New Remote Site。

图1
图1:使用Eclipse Update Manager安装Subclipse

   扫描完更新后,您会看到一个可用特性的列表。我写这篇文章时,Subclipse 0.9.33是最新的更新版本。

图2
图2:选择最新的Subclipse更新版本

   在接下来的界面中,会请求用户接受许可证并选择安装位置。建议不要将新插件(包括Subclipse)安装在默认的Eclipse安装目录下,最好将其放在一个外部扩展位置中。这会使手动卸载这些特性更加容易,如果需要的话;同时也使插件可以在多个版本的Eclipse安装之间共享,比如发行版、尝鲜(early access)稳定版(M1、M2等等)和集成IDE版本。

图3
图3:选择安装位置

   此时,Update Manager已下载并安装了所选特性,然后请求重启Eclipse。

   一旦重启Eclipse,用户就会在Preference对话框中看到一个新的SVN区域,并且还会看到有关Subversion活动的其他视图。可以使用Window -> Show View -> Other...菜单将这些视图添加到Java Perspective中。

图4
图4:添加关于Subversion活动的视图

   我通常将SVN Repository视图添加到Quick Views中,而将SVN Resource History添加到位于Java Perspective工作区底部的一个标签组中。这样,在开发过程中,这两个视图就近便可用了,同时也便于利用拖放来运行某些任务,比如“获得资源历史”(从诸如Navigator、Package Explorer、SVN Repository和Synchronize之类的面向资源的视图到SVN Resource History视图)。

在Subclipse中配置SVN接口

  可以配置Subversion服务器来使用下列协议之一:

  • SVN协议,一种轻量级的有状态协议,由独立的Subversion服务器(svnserve)所使用。安全版本svn+ssh使用基于ssh的隧道。
  • http协议,基于WebDAV扩展,通常被作为模块部署在Apache HTTP服务器上。安全版本使用https,dev2dev CodeShare上的Subclipse安装使用的就是该协议。
  • file协议,用于访问本地可用的Subversion库(例如,共享驱动器上的Subversion库),它是最少选择的库。

  Subclipse使用专门的适配器抽象化来利用上述协议。可以在Window -> Preferences -> Team -> SVN对话框的插件属性中选择下列适配器中的一种。

图5
图5:选择适配器

   每一种适配器都有其自身的优点:

  • JavaSVN是惟一完全基于Java的Subclipse客户端,是默认支持的。注意,JavaSVN不支持file:///协议。
  • JavaHL是包装本地Subclipse API的瘦包装器。该适配器是为Win32平台预构建的,但是在其他所有的平台上必须手动构建(除非Unix发行版中包含它)。
  • 命令行适配器,只有在不能安装JavaHL并且Subclipse库使用file:///协议时才可以使用。

  大多数情况下都可以使用JavaSVN;只有需要时才选择JavaHL或命令行适配器。参考资料小节中的链接可以帮助解决特定用例,如配置HTTP代理、SSL客户端证书,等等。

连接到CodeShare上的SVN库

  现在就可以连接到Subversion库了。对于dev2dev CodeShare上的项目,可以在访问选项页面中看到一个库的URL,可以从Version控制项目菜单中找到该页面。 这里是一个例子 。CodeShare SVN服务器要求用户使用的用户名和口令与其在dev2dev网站上所使用的相同。

图6
图6:连接到Subversion库

   如果连接参数设置正确,就可以看到一个SSL证书确认对话框。

图7
图7:接受SSL证书

   接受证书后,应该就可以浏览库并查看现有项目。

图8
图8:查看SVN库中的现有项目

   现在已经准备好,要开始使用Subversion和Subclipse插件了!

查看SVN中的现有项目

  在SVN Repository视图中可以看到,在许多CodeShare项目以及使用Subversion的其他项目中都可以看到一种共同的布局,通常如下所示:

  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)

  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
图9:在Share Project Wizard中选择SVN库类型

   在接下来的界面中指定模块名。为了与CodeShare项目布局相匹配,我们应该在trunk文件夹下创建模块,因此,指定trunk/<project name>作为模块名,比如trunk/xjms-ra。

图10
图10:指定模块名

   经过确认后,Subclipse会创建模块,并将所有的项目文件导入SVN库。

使用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
图11:将命令组添加到当前透视图中

   在工具栏下拉菜单中选择Synchronize...动作来启动向导。在第一个界面中,它又让用户选择SVN版本跟踪系统,然后会显示标准资源选择面板,用户可以选择同步整个工作区,也可以选择某组项目或者一个指定的工作集。

图12
图12:同步工作区、工作集或选中的资源

   一旦完成创建,Synchronize视图就可以使用版本控制系统安排自动刷新的时间。可以通过Synchronize视图菜单中的Schedule...菜单对其进行配置。这将有助于用户保持最新状态,还可以看到其他开发人员所做的所有改动。

图13
图13:安排自动刷新的时间

   由于Subclipse仍在发展,所以用户可能会遇到bug或者无法找到真正希望获得的一些特性。这带我们进入下一个话题。

修补Subclipse

  当在Subclipse中遇到问题时,可以有多种选择。如果是瑕疵问题,那么可以简单地选择不使用该产品或等待下一个版本。还可以搜索问题跟踪系统以及邮件列表档案user@subclipse.tigris.orgdev@subclipse.tigris.org,有可能找到当前问题的应对措施或解释。如果这样没有帮助,那么可以在邮件列表中咨询此问题;如果有兴趣试着自己解决,那么,下面的段落将简要介绍如何开始调试和修补Eclipse。但是,如果非常希望有所捐助,那么一种好的方法是订阅dev@subclipse.tigris.org邮件列表,从而使您所做的努力与其他开发人员相协调,根据项目路线图调整您的想法。

   着手开始真的非常容易,即使您以前从没有使用过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。

库路径 Jar或Eclipse插件名 描述
trunk/svnClientAdapter svnClientAdapter.jar 用于非Windows系统,或者当用户需要构建svnClientAdapter或JavaHL时
trunk/subclipse/core org.tigris.subversion.subclipse.core 特定于Eclipse的插件后端
trunk/subclipse/javahl-win32 org.tigris.subversion.javahl.win32 为svnClientAdapter和JavaHL预构建本地Windows二进制文件
trunk/subclipse/ui org.tigris.subversion.subclipse.ui 特定于Eclipse的UI
trunk/subclipse/feature-plugin org.tigris.subversion.subclipse 介绍,无代码
trunk/subclipse/feature org.tigris.subversion.subclipse (feature) Subclipse特性
trunk/subclipse/book org.tigris.subversion.book Eclipse帮助小节,包括“Version Control with Subversion”这本书
trunk/subclipse/book-feature org.tigris.subversion.book (feature) “Version Control with Subversion”这本书的特写
trunk/subclipse/update-site - Subclipse和“Version Control with Subversion”一书的特写的更新站点

  对于开发和测试,只需要org.tigris.subversion.subclipse.core, org.tigris.subversion.subclipse.ui以及org.tigris.subversion.javahl.win32或svnClientAdapter;其他的模块仅在打包整个插件特性或构建更新站点时需要。

   当所有的项目都在Eclipse工作区中之后,就可以试着运行了。使用Run -> Run...菜单(或Debug,在调试器下运行),启动新的Eclipse Application类型,并在Workspace Plug-Ins列表中选择Subclipse插件。如果使用已安装的Subclipse运行IDE,那么应该在External Plug-Ins列表中取消对Subclipse插件的选择,但是要使其他插件均保持选中状态。

图14
图14:运行Eclipse应用程序

   单击Run(或Debug),如果一切都配置正确,那么就会出现第二个Eclipse Workbench窗口;应该可以打开Subclipse视图,并像Eclipse本身的实例一样连接到库。此时,如果是在调试器下运行,就可以开始将断点放到Subclipse类、或Subclipse所使用的Eclipse核心类中,调试器会停在这些断点上。一个非常好的起点是org.tigris.subversion.subclipse.ui插件中的org.tigris.subversion.subclipse.ui.actions包,它包括菜单或工具栏中特定于Subclipse的UI动作。注意,可以使用UI注册这些动作,可以在plugin.xml中声明式地注册(通常是action元素),或者是在Java代码中编程式地注册,因此,这两个地方都要查看。

   假定已经完成了最棘手的部分,并且已经设法实现了更改,那么现在就该创建补丁并将其附在Subclipse 问题跟踪库中的原始问题上了。在创建补丁以前,请确保从版本控制库中选择最新的更改(如果有的话),并最后一次测试更改。如果一切都没有问题,那么就使用Team -> Create Patch...菜单来启动向导。选择Save To Clipboard或Save In File System,并指定是否需要对子目录进行循环扫描来查看更改。

图15
图15:创建补丁

   创建了补丁之后,就可以将其发送至dev@subclipse.tigris.org邮件列表了,或者也可以在问题跟踪器中创建问题并将其附上。

结束语

  诸如Subclipse插件之类的Eclipse平台开源扩展可以提高开发人员的生产力,降低出错的可能性,并增强开发团队内部的交流。本文演示了如何安装、配置和使用Subclipse插件来从Eclipse IDE内部与Subversion版本控制系统进行交互。

  以Subclipse插件为例,本文还演示了如何设置一个环境以进行Eclipse插件开发、如何调试现有插件、如何创建补丁。事实上,任何Eclipse用户都可以为该开源扩展以及Eclipse平台本身捐献想法和补丁。

参考资料

原文出处:http://dev2dev.bea.com/pub/a/2005/11/subclipse.html

 作者简介
  Eugene Kuleshov 是一位独立顾问。他在软件设计和开发方面具有超过12年的经验,擅长于应用程序安全、企业集成(EAI)和面向消息的中间件。他的客户包括大型的金融和保险公司。
分享到:
评论

相关推荐

    使用SUBCLIPSE——针对ECLIPSE的SUBVERSION插件

    **使用SUBCLIPSE——针对ECLIPSE的SUBVERSION插件详解** Subversion(简称SVN)是一种广泛使用的版本控制系统,它提供了比CVS更先进的功能,如版本化的文件重命名、目录操作以及元数据版本控制。SVN还支持原子提交...

    eclipse——svn插件

    至于压缩包子文件的文件名称"svn",可能代表了Eclipse SVN插件的安装包,例如`subversive_svn_connectivity_feature`或`subclipse_feature`,这些是常见的Eclipse SVN插件的组成部分,如Subversive和Subclipse。...

    svn插件安装Eclipse

    Eclipse是一款强大的集成开发环境(IDE),为了在Eclipse中使用SVN进行代码版本控制,需要安装对应的插件——Subclipse。以下是安装Subclipse到Eclipse 3.x的详细步骤: 1. **开始安装**:首先,通过Eclipse的"帮助...

    subclipse-source-1.6.13

    《Subclipse源码分析——深度探索Eclipse SVN插件实现》 Subclipse是Eclipse集成开发环境中的一个著名插件,专为版本控制系统Subversion(SVN)提供强大的支持。在"subclipse-source-1.6.13"这个压缩包中,包含了...

    eclipse下svn插件的安装

    本文将详细介绍如何在Eclipse环境中离线安装SVN插件——Subclipse,以便开发者能够在不连接互联网的情况下也能顺利地进行版本控制操作。 #### 二、准备工作 1. **下载 Subclipse 插件包**: - 访问官网地址:...

    eclipse中svn插件的安装与使用

    本文将详细介绍在Eclipse中安装与使用SVN插件——Subclipse的过程,以及如何通过Subclipse进行基本的版本控制操作。 ### 安装Subclipse插件 Subclipse是Eclipse的一个开源插件,用于提供SVN版本控制功能。其安装...

    eclipse svn 插件

    3. **Eclipse SVN插件**:如描述中所提,Eclipse SVN插件是将Subversion的功能集成到Eclipse中的工具,主要有两个知名的插件——Subclipse和Subversive。这两个插件提供了相似的功能,包括版本库浏览、提交、更新、...

    Subclipse-1.10.x.zip

    Subclipse是一款广受欢迎的SVN(Subversion)客户端插件,专为集成到Eclipse IDE中设计。在本文中,我们将深入探讨Subclipse的核心功能、安装过程以及如何在MyEclipse环境中有效地使用它。 首先,了解SVN的重要性是...

    svn插件 myeclipse/eclipse

    3. **SVN插件**:主要有两种主流的Eclipse SVN插件——Subversive和Subclipse。Subversive通过PDE(Plug-in Development Environment)构建,而Subclipse基于JavaHL库,两者都能提供完整的SVN功能集。 【压缩包子...

    eclipse svn 插件 (svn-site-1.10.1)

    1. **Eclipse SVN插件**:Eclipse的SVN插件有两种主要形式——Subversive和Subclipse,两者都是Apache Subversion(SVN)的Eclipse客户端。它们提供了图形化的界面,使得开发者可以在Eclipse内直接进行版本控制操作...

    eclipse插件安装,调优,使用技巧

    本篇文章将深入探讨如何在Eclipse中安装、调优及应用插件,特别是针对版本控制工具Subversion(SVN)的插件。 首先,让我们了解如何安装Eclipse插件。Eclipse有一个内置的插件管理工具——“Eclipse Marketplace”...

    eclipse SVN插件及安装说明

    Eclipse SVN插件是开发人员在使用Eclipse IDE进行版本控制时的重要工具,它使得开发者能够在Eclipse环境中方便地与Subversion(SVN)服务器进行交互。Subversion是一种开源的版本控制系统,用于跟踪文件和目录的修改...

    eclipse的svn插件

    Eclipse提供了两种主流的SVN插件——Subversive和Subclipse。Subversive是通过Eclipse更新站点安装的,而Subclipse则可以从其官方网站下载。两者都是与SVN服务器进行交互的接口,但它们的实现方式和依赖库有所不同...

    subclipse1.8.x与TortoiseSVN1.7.x

    Subclipse和TortoiseSVN是两个非常重要的版本控制系统——Subversion(SVN)的客户端工具,它们在软件开发过程中用于版本控制、协同工作和源代码管理。在本篇文章中,我们将深入探讨这两个工具以及它们如何在1.8.x和...

    SVN插件——版本控制工具

    总之,"SVN插件——版本控制工具"提供的Subclipse集成解决方案为MyEclipse用户提供了强大的版本控制功能,是团队开发不可或缺的工具。通过正确安装和配置这两个文件,开发者可以在MyEclipse中享受更加便捷的SVN操作...

    java eclipse下的svn配置方法

    通过本文的介绍,您可以了解如何在 Eclipse 中配置 SVN 服务端和客户端,以及如何使用 Eclipse SVN 插件进行基本的版本控制操作。掌握这些技能对于团队协作和代码管理至关重要。希望本文能帮助您更好地利用 SVN 进行...

    Eclipse中dropins放置jbpm,svn,Apana插件的link文件

    Eclipse提供了一种便捷的方式——通过“dropins”目录来安装和配置这些插件。现在让我们详细了解一下如何在Eclipse的dropins目录中放置link文件来安装jbpm、svn和Apana插件。 首先,理解"Eclipse的dropins机制"是...

    Myeclipse8.5安装svn方法

    本文将详细介绍如何在MyEclipse 8.5中安装并配置SVN插件——Subclipse。 #### 二、Subclipse简介 Subclipse是一个开放源代码项目,它为Eclipse和MyEclipse提供了Subversion的支持。通过Subclipse,开发者可以直接...

Global site tag (gtag.js) - Google Analytics