Eclipse中SVN插件的功能使用帮助

2016-09-29

引言

本文将对Eclipse中SVN工具的功能提供使用帮助,并不从理论或者命令行的角度进行详解与分析。

准备工作

本文中的操作平台为Eclipse IDE for Java EE 4.5.1版本

安装svn插件

  1. 打开eclipse 的应用市集(Help -> Eclipse Marketplace…)
  2. 输入检索条件“svn”
  3. 选择需要的插件点击Install,并按提示完成安装
  • 安装完插件,可能提示重启Eclipse。
  • 推荐选择Subversive - SVN Team Provider插件。

调出SVN Repository Exploring

点击open-perspective.png (默认位于Eclipse工具栏右侧)打开open perspective 窗口。选中SVN Repository Exploring并点击OK

open-perspective-view.png

个性化定制

以下属于可选操作,根据自己的习惯选择使用。

调出SVN菜单

WindowPerspectiveCustomize Perspective切换到Action Set Availability勾选SVN

类似的方法可以设置其他个性化视图风格,使Eclipse更顺手

功能

New Repository Location

新建一个远程SVN资源库连接。按弹出框提示填入对应的内容即可。一般仅须填写General选项卡。
位于SVN Repository Exploring

new-repository-location.png

Check Out

检出。将远程SVN资源库中的某一位置复制到本地,并对其进行版本控制。默认检出目录为Eclipse的当前Workspace。

若本地存在相同名称的项目,将会提示覆盖当前项目。

Synchronize with Repository

与版本库进行同步。将会对比本地代码与版本库中当前分支HEAD版的代码。

Update

更新至当前分支的最新版本(HEAD)。

若要更新到自定义版本请点击Update to Revision...

Commit

提交更改到当前分支。

强烈建议填写Comment,以便团队成员包括自己可以快速知道更改内容

Tag

标签。仅仅是一份快照,记录标记时刻的各个文件的版本。通常用于发布版本。

Branch

分支。用于团队并行开发以及新功能测试,能够避免代码冲突,不影响主干(用于生产环境的版本)上的代码。

建议:建立的分支路径及名称制定团队的统一规范,便于管理。

Switch

切换分支。将本地代码从当前分支切换到选定的分支。

Switch的url请务必选择与当前选定的目录级别相同的版本库目录,否则会失败。

Merge

合并分支

合并一个版本范围

将选择的url及版本合并到本地版本中,合并后的版本提交到本地版本所在的分支。

merge-single-url.png

选项解释

url的选择
url路径须跟本地合并目录的级别一致,否则将导致出错。

合并两个不同的树

将第二个url版本的合并到第一个url的版本中,并将合并后的代码下载到本地手动解决冲突。

merge-2-urls.png

Reintegrate

将所选url的分支所做的更改,全部应用到本地版本的分支。本地版本所在分支的全部更改将被其覆盖

merge-reintegrate.png

Show History

显示SVN版本提交历史。可以查看选定的目录或文件在当前分支上的所有版本的更改记录。

在进行版本比较,代码追查的时候非常有用

Compare With

比较选定文件的本地副本版本与以下几种方式查找的版本之间的差异。右键菜单可调出。

compare-with.png

Cleanup

清理。当本地目录出现无法提交、文件版本冲突等问题,其中部分问题可以通过Cleanup解决。

设置选项详解

SVN的设置选项位于PreferencesTeamSVN

这里以Subversive - SVN Team Provider插件为例

SVN-General

SVN-SVN Connector

SVN-Project structure

SVN-View Settings

SVN-Error Reporting

常用操作

提交更改

  1. 当前状态:完成自己的开发任务,准备提交更改到版本库。

  2. 点击Synchronize with Repository,待系统操作完成切换到Team Synchronize

  3. 检视Synchronize视图中列出的文件,确认要提交的文件。

    若有某些文件此次不想提交,可以选中右击Remove from View,会暂时将此文件从当前清单中移除

  4. 选中要提交的文件或目录,点击Commit,提交到版本库。

将自己的开发分支Marge回主干

此场景适用于将更改合并回主干(trunk)或主开发分支(dev)

  1. 当前状态:当前工作目录位于自己的开发分支上,完成了开发任务。

  2. 提交当前的更改,完成后UpdateHEAD版本。

  3. 选中当前要切换的项目根目录,点击Switch按钮,打开Switch To弹框。选择URL到主干的路径,点击OK。待切换完成后进行下步操作。

  4. 还是选择项目的根目录,点击Merge按钮。切换到URL选项卡,选择要合并的分支的URL。

    一般建议合并整个项目的目录,以免遗漏合并更改过的代码。

  5. Revision选择Start from copyDepth选择Recursively

merge-start-from-copy.svg

此场景下选择Start from copy(即分支创建的版本)最为适宜,可避免遗漏更改,也减少冲突的数量。选择Recursively的目的是避免本地目录尚未提交的文件影响合并。

  1. 点击Preview,检视弹出的窗口中合并影响的文件,大致确认是否为自己修改。

    Preview可减少因操作失误导致的合并错误,影响效率和版本控制的可靠性。

  2. 点击OK,等待处理完成后自动切换到Team Synchronize

  3. 依次确认Synchronize视图中所显示的更改,并手动处理冲突。几种冲突类型如下:

    • Tree Conflicts:文件内容无变动,仅仅是分支产生的文件识别冲突。选中右击,选择Edit Tree Conflicts。在弹出框中选择一种处理方式:

      • Incoming Changes
    • Conflicts:文件内容有冲突。选中右击,选择Edit Conflicts。对比代码不同的地方,手动合并后保存。再选中当前文件,右击Mark as Merged

  4. 解决全部冲突后,切换回JavaEE Perspective,再选中当前项目的根目录,并点击Synchronize with Repository。此时确认变更后,即可Commit到版本库。

常见错误及解决