如何在Eclipse中使用Subversion

Eclipse的原始安装已集成了对CVS(流行的开源变更管理系统)的支持。 CVS的功能及其局限性是众所周知的,但是许多小组一直在研究其他版本控制系统,以提供更好的缩放比例,对合并更改和分支版本的更好支持以及对二进制文件格式的更好支持。

Subversion(SVN)是CVS的流行替代品,它提供了改进的性能(由智能本地缓存和数据库后端提供),简单快速的分支,并解决了人们在使用CVS时经常遇到的每个缺点。

请继续阅读以了解如何向Eclipse添加Subversion支持,以及如何从IDE执行基本的版本控制活动。

在你开始前

您将需要下载并安装Eclipse。 下载适用于您的平台的Eclipse SDK软件包将为您提供基本的Eclipse IDE(称为Eclipse平台)以及Java™开发工具包。 如果您打算使用C / C ++(按照我的意愿),请访问C开发工具(CDT)网站,并使用更新管理器安装CDT(下一节将介绍使用更新管理器)。

您还需要访问Subversion存储库。 如果需要设置,可以在Subversion网站上找到出色的文档。 出于演示目的,我将向您展示如何检出Subclipse项目以及如何使用LAN上存储库中的项目。

将Subclipse添加到Eclipse

Subclipse是一个将Subversion支持添加到Eclipse IDE的项目。 我们将使用Eclipse的更新管理器将Subclipse添加到我们的Eclipse IDE中。 从Eclipse的“帮助”菜单中,选择“ 软件更新”>“查找并安装”以打开更新管理器。

图1. Eclipse更新管理器
如何在Eclipse中使用Subversion

除了使用它来查找软件更新之外,我们还可以使用更新管理器来查找和安装新功能,例如Subclipse。 确保已选择“ 搜索要安装的新功能” ,然后单击“ 下一步”继续。 Eclipse显示下一个更新管理器面板。

图2. Update Manager站点
如何在Eclipse中使用Subversion

由于我们追求特定功能,因此请取消选中现有站点,然后单击“ 新建远程站点”以显示“新建更新站点”对话框(请参见图3)。 我们将使用它来将Subclipse更新站点添加到列表中。

图3.添加一个新的更新站点
如何在Eclipse中使用Subversion

输入您想要的名称( Subclipse是一个不错的选择),然后为URL输入以下内容: http://subclipse.tigris.org/update_1.0.x : http://subclipse.tigris.org/update_1.0.x (当前的Subclipse更新站点)。 单击“ 确定” ,将Subclipse更新站点添加到更新管理器中的列表中。

在更新管理器窗口中单击完成以开始搜索新功能。 在这种情况下,我们追求的新功能是Subclipse。 片刻之后,更新管理器的搜索完成,并显示搜索结果。

图4.我们可以安装的新功能
如何在Eclipse中使用Subversion

选中Subclipse(您可以单击显示三角形以查看此功能中确切包含的内容),然后单击“ 下一步”以查看该功能的许可条款。 接受条款,然后单击“ 下一步”以查看您选择安装的功能。 单击完成以下载并安装Subclipse。

更新管理器下载Subversion组件。 在安装任何东西之前,Eclipse会警告您这些功能没有经过数字签名(图5)。 这是您取消安装的最后机会。 单击全部安装以继续安装。

图5. Subclipse没有数字签名
如何在Eclipse中使用Subversion

一旦安装了Subversion,Eclipse会警告您可能需要重新启动IDE才能**新功能(参见图6)。 重新启动Eclipse,以防万一。

图6.安装新功能后重新启动Eclipse
如何在Eclipse中使用Subversion

当Eclipse重新启动时,Subclipse已安装并准备就绪。

如果您在Mac OS X或Linux®上运行Eclipse,则可能需要安装JavaHL库,这在Subclipse FAQ的“疑难解答”部分中进行了介绍。 在继续尝试使用Subclipse之前,请执行此操作。

快速测试

完成安装后,测试新功能总是很不错的。 我们将尝试从其Subversion存储库中签出Subclipse的副本,以确保已正确安装。

从Eclipse的File菜单中,选择Import以显示导入管理器(请参见图7)。 从SVN中选择Checkout Projects ,然后单击Next

图7.导入管理器
如何在Eclipse中使用Subversion

在“选择/创建位置”面板上(请参见图8),我们需要创建一个新位置(因为我们尚未配置任何位置),因此请单击“ 下一步”继续。 如果禁用了“ 下一步”按钮,则切换到“ 使用现有存储库位置”选项,然后返回到“ 创建新存储库位置”以启用“ 下一步”按钮。

图8.创建一个新的存储库位置
如何在Eclipse中使用Subversion

在下一部分(请参见图9)中,将存储库URL( http://subclipse.tigris.org/svn/subclipse/ )添加到Url字段,然后单击Next 片刻之后,Eclipse会提示您输入用户ID和密码。 如果您在Subclipse站点上没有帐户,请输入guest作为用户ID,并输入一个空格作为密码,然后选中Save Password(保存密码)框,然后单击OK(确定)

图9.添加存储库URL
如何在Eclipse中使用Subversion

Eclipse在Subclipse存储库中显示文件夹(请参见图10)。 展开主干并选择subclipse文件夹,然后单击“ 完成”以签出您自己的Subclipse项目的源代码副本。 由于您不知道这是什么,因此在“新建项目”向导提示时选择“ 简单”>“项目 ”。

图10. Subclipse存储库
如何在Eclipse中使用Subversion

基本的Subversion操作

至此,我们已经成功安装了Subclipse,这为我们的Eclipse设置增加了对Subversion服务器的支持,并且我们已经通过从存储库下载当前的Subclipse源代码来测试了Subclipse。 现在,我们应该考虑使用我们自己的代码和我们自己的Subversion存储库来做一些事情。

在向您展示Subversion的工作方式之前,我将向您简要介绍一下我的存储库。 它托管在端口8000上的名为dogma的机器上,并且我已经为与我的developerWorks文章相关的代码创建了一个新的developerworks存储库。 我将把项目直接放在存储库的根目录中。 对于其他开发版本,标签和分支,其他存储库通常都具有名为trunk,标签和分支的文件夹,但是我不希望担心标记或分支developerWorks文章代码。

我在第一篇developerWorks文章中添加了两个项目forkWork和threadWork。 我的Eclipse工作区(请参见图11)还包含来自developerWorks文章的其他三个项目(getopt_demo,getopt_long_demo和readdir_demo)。

图11.我的Eclipse C / C ++项目
如何在Eclipse中使用Subversion

现在我们准备开始工作。

将项目添加到资源库

要将新项目添加到Subversion存储库中,请右键单击该项目(在Eclipse的任何项目视图或Navigator视图中),然后从菜单中选择Team> Share Project Eclipse显示“共享项目”对话框。

图12. Share Project对话框
如何在Eclipse中使用Subversion

从Eclipse当前支持的存储库列表中选择SVN,然后单击Next 下一个对话框(请参见图13)使您可以选择现有的存储库位置,也可以创建一个新的存储库位置。

图13.选择一个存储库位置
如何在Eclipse中使用Subversion

如果您的存储库已经列出(如您所见,我已经添加了我的存储库),请选择它,然后单击Finish 如果您的存储库未列出,请添加它(请参阅快速测试以获取说明)并继续。 Eclipse在存储库中创建一个与您的项目同名的新目录,并显示该项目中所有文件和文件夹的列表。

图14.添加项目的内容
如何在Eclipse中使用Subversion

在顶部字段中输入描述此项目的合适注释,然后单击“全选”以检查项目中的所有文件。 单击“ 确定”以签入项目并将其当前状态传输到Subversion存储库。

如果要确切了解Subclipse对项目所做的操作,则Subversion的命令和输出将显示在“控制台”视图中,通常在Eclipse窗口的底部。

更新项目

版本控制系统的关键功能之一是让其他开发人员能够继续开发并在准备就绪时提交所做的更改。 要下载这些更改并将其与本地副本集成,您需要更新项目。

右键单击要更新的项目,然后从菜单中选择“ 团队”>“更新 ”。 Eclipse从存储库中检索所有更改,并尝试将其与本地副本合并。

添加文件或目录

如果将文件添加到项目中(请参见图15),则该文件不会自动成为版本控制的一部分-您需要将其专门添加到存储库中。 在屏幕截图中,您可以看到我已将ReadMe.txt文件添加到threadWork项目。

图15.添加一个新文件
如何在Eclipse中使用Subversion

右键单击新文件,然后选择“ 团队”>“添加到版本控制” 而已! 下次您将此项目中的更改提交到存储库时,新文件也将被签入。

删除文件或目录

如果您已向存储库中添加了与项目不再相关的文件,则可以轻松地将其删除。 右键单击该文件,然后选择“ 删除” 不需要团队菜单,Subclipse会自动标记要删除的文件并将其从项目中删除。 下次将更改提交到存储库时,该文件将被删除。

重命名文件或目录

要在Subclipse的控制下重命名文件或目录,请右键单击它,然后选择重命名 在输入字段中输入项目的新名称,然后单击Enter 该文件在项目中被重命名,重命名操作(新名称为Add,旧名称为Delete)排队等待下一次提交。 在图16中,您可以在将main.c重命名为threadWork.c之后但在提交更改之前看到threadWork项目。 请注意,Subclipse带有蓝色的小加号,已将它添加到“新”文件中,以指示已计划在下一次提交中添加它。

图16.重命名文件是原子的,即使它是添加和删除
如何在Eclipse中使用Subversion

忽略文件

如果您的项目生成文件,或者包含您不想签入Subversion存储库的文件,则可以告诉Subclipse忽略它们。 右键单击要从版本控制中排除的文件或目录,然后选择“ 团队”>“添加到svn:ignore”以显示“添加到svn:ignore”对话框。

图17.忽略不属于版本控制的资源
如何在Eclipse中使用Subversion

单击“ 确定”将此特定文件添加到项目目录的svn:ignore属性。 选择“ 通配符扩展名”以忽略具有当前文件扩展名的所有文件,或选择“ 自定义模式”以将自己的通配符添加到忽略列表。 下次提交更改时,对忽略列表的这些更改将添加到资源库中。

提交更改

对项目的更改感到满意之后,请确保您的代码已编译,并且已经测试了更改,您应将其提交到Subversion存储库。 万一您的工作站自毁,它可以用作备份,并允许其他开发人员更新其本地副本以包括您的更改。

在尝试提交更改之前,请确保更新您的项目(请参阅“更新项目”)。 右键单击项目,然后从菜单中选择“ 团队”>“提交 ”。 Eclipse显示Commit对话框(请参见图18),其中总结了您的更改。

图18.将更改提交到存储库
如何在Eclipse中使用Subversion

如果仔细看,您会看到项目目录的属性更改(我已添加到svn:ignore属性,以使某些文件脱离存储库),并且在添加threadWork.c时删除了main.c。 这对更改实际上表示一个操作(文件重命名)。

此时,如果要将资源保留在资源库之外,则可以取消选择资源。 如果您仅完成一个文件的部分工作,并且不想检入不完整的更改,这可能会有所帮助。 在顶部文本字段中输入适当的注释,然后单击“ 确定”以检入对存储库的更改。

摘要

Subclipse项目将对Subversion版本控制系统的支持与Eclipse出色的团队项目管理功能集成在一起,该功能仅支持现成的CVS服务器。 使用Eclipse的更新管理器,可以轻松地将Subclipse添加到Eclipse安装中,这使您可以直接从Eclipse使用此高级(至少在我看来,是)版本控制系统。

对于不熟悉Subversion的人们来说,在将项目添加到存储库中并管理项目的资源后,这可能会让人望而生畏,而普通操作的过程却很简单。 本文引导您完成日常操作,以帮助您熟悉Subclipse。

注册developerWorks Premium


翻译自: https://www.ibm.com/developerworks/opensource/library/os-ecl-subversion/index.html