Subclipse介绍

正如Win端的TortoiseSVN一样,Subclipse是Eclipse上最常用的提供SVN版本控制管理插件。使用该插件便可以对项目版本控制库进行相应的操作,如代码更新,提交,版本回退以及分支创建与合并,建立项目里程碑等等操作。下面是一段官方关于Subclipse的介绍:


An Eclipse Team Provider plug-in providing support for Subversion within the Eclipse IDE. Developed and maintained by Subversion core committers, Subclipse is always in synch with the latest Subversion features and releases.

Subclipse includes the CollabNet Merge Client originally developed as part of the CollabNet Desktop - Eclipse Edition. The CollabNet Merge Client provides powerful graphical merge capabilities that leverages the merge tracking functionality that was added as part of the Subversion 1.5 release.

Subclipse includes an optional Mylyn connector that enables Mylyn to create automatic changesets based on the tasks you are working on. It also enables links to tasks when viewing history of Subversion commits.

Finally, Subclipse includes a powerful revision graph feature that is built with Eclipse GEF/Draw2D. This allows you to visualize commits and merges across Subversion branches.


在Eclipse中安装SVN插件

  • 检查你的Eclipse是否已经安装了Subclipse

    打开Eclipse,选择Help——->Install New Sorfware———–>右下的”already installed?”
    打开页面后,会显示你的Eclipse当前已经安装的插件,查看是否有SVN相关的插件存在。

    This is an example image
  • 在Eclipse中安装Subclipse

    打开Eclipse,选择Help——->Eclipse Markplace,搜索”subclipse”
    根据提示安装完成后重启即可。(有弹窗提示的只要选择确认即可)

常规用法

  • 显示版本资源库窗口,添加远程版本库

    Window ————> Show View ————> Other ————-> SVNThis is an example image
  • 添加文件,并且提交到版本库当中

    右键Project ————–> Team —————–>提交

  • 删除文件

  • 解决代码冲突

    右键发生冲突的文件————> 编辑冲突
    修改好冲突后右键冲突文件————> 标记解决

主线与分支管理

  • 常见SVN仓库目录介绍

    1.–Trunka
    SVN组成Trunka,Trunk是放置稳定代码的主要环境,就好像一个汽车工厂,负责将成品的汽车零件组装在一起。
    除非你必须处理一些容易且能迅速解决的BUG,或者你必须添加一些无关逻辑的文件(比如媒体文件:图像,视频,CSS等等),否则永远不要在trunk直接做开发
    不要因为特殊的需求而去对先前的版本做太大的改变,如何相关的情况都意味着需要建立一个branch(如下所述)
    不要提交一些可能破坏trunk的内容,例如从branch合并。
    2.–Branches
    SVN组成branches,一个branch就是从一个SVN仓库中的子树所作的一份普通拷贝。通常情况它的工作类似与UNIX系统上的符号链接,但是你一旦在一个SVNbranch里修改了一些文件,并且这些被修改的文件从拷贝过来的源文件独立发展,就不能这么认为了。当一个branch完成了,并且认为它足够稳定的时候,它必须合并回它原来的拷贝的地方,也就是说:如果原来是从trunk中拷贝的,就应该回到trunk去,或者合并回它原来拷贝的父级branch。
    如果你需要修改你的应用程序,或者为它开发一个新的特性,请从trunk中创建一个新的branch,然后基于这个新的分支进行开发
    除非是因为必须从一个branch中创建一个新的子branch,否则新的branch必须从trunk创建
    当你创建了一个新branch,你应当立即切换过去。如果你没有这么做,那你为什么要在最初的地方创建这个分支呢?
    3.–Tags
    SVN组成Tags。从表面上看,SVNbranches和SVNtags没有什么差别,但是从概念上来说,它们有许多差别。其实一个SVNtags就是项目的里程碑。

  • 创建分支,切换到分支

    有些时候,根据业务需要,我们需要从项目主干上创建独立的分支。
    比如项目demo下有两个小组,svn下有一个trunk版。由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作(某个模块),小组2进行新需求的开发。那么此时,我们就可以为小组2建立一个分支,分支其实就是trunk版(主干线)的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过[合并]功能,将分支合并到trunk上来,从而最后合并为一个项目。

  • 将主干代码合并到分支

    当我们在branch中完成了业务需求功能开发,在将分支代码合并到主干之前,需要将主干代码合并到当前分支,以防主干版本与该分支初期版本相差太远。
    操作如下:
    切换到当前分支——->Team——>合并

    This is an example image

    这里的来源选择主干

    This is an example image
  • 将分支代码合并到主干

    操作如下:
    切换到当前主干——>Team——>合并

    This is an example image

    这里的来源选择想要合并的支线。
    注意上面的版本号选择刚从主线拉出该分支的版本号;
    下面的版本号一般选择最新版本。

    This is an example image

工作流样例

假设你必须添加了一个特性至一个项目,且这个项目是受版本控制的,你差不多需要完成如下几个步骤:
1.使用SVNcheckout或者SVNswitch从这个项目的trunk获得一个新的工作拷贝(branch)
2.使用SVN切换至新的branch
3.完成新特性的开发(当然,要做足够的测试,包括在开始编码前)
4.一旦这个特性完成并且稳定(已提交),并经过你的同事们确认,切换至trunk
5.合并你的分支至你的工作拷贝(trunk),并且解决一系列的冲突
6.重新检查合并后的代码
7.如果可能的话,麻烦你的同事对你所编写、更改的代码进行一次复查(review)
8.提交合并后的工作拷贝至trunk