0 基本概念了解

0.1 SVN的工作原理:采取客户端/服务器模式——在服务器的版本库中保存项目文件的各个版本,所有参与协同开发的程序员在自己本地电脑上保存一个工作副本。SVN支持程序员将本地副本更新到服务器端的最新版本,也支持将本地副本的最新改变更新到服务器端,而且后面的更新不会覆盖前面的更新,而是作为一个新的版本被保存下来——SVN甚至支持将本地工作副本恢复为服务器端保存的某一个历史版本。

0.2 SVN基本操作

检出(checkout):将一个服务器端创建好的项目整个下载到本地,这是到项目组后参与开发的第一步,只需执行一次。

更新(update):将本地文件更新为服务器端的最新版本,通常为每天上班时或修改公共文件之前执行一次。

提交(commit):将本地修改提交到服务器端。通常每天下班前或每实现一个功能、完成一个模块时执行一次。

1  Eclipse中svn的使用

1.1 Eclipse插件应用市场

在Eclipse中访问Eclipse Marketplace Client可以搜索Subversion,下载插件,按提示安装即可。

1.2 使用压缩包(推荐)

如果不能联网可以使用下载好的插件压缩包eclipse_svn_site-xxx.zip,这个压缩包是从http://subclipse.tigris.org/网站(subclipse是这款Eclipse插件的名称)上下载的。安装方法是:

①解压eclipse_svn_site-xxx.zip中的features和plugins这两个目录

②将features和plugins复制到Eclipse安装目录/dropins/svn下

③重启Eclipse

④进入Eclipse依次打开Window→Preferences→Team→SVN,看到如下界面即说明SVN插件安装成功

1.3 创建资源库位置

①切换到透视图SVN资源库研究

②创建资源库位置

此时可以查看版本库中的文件及目录结构

1.4 检出

①检出分两种情况

<1>从服务器端获取到的是一些零散的文件,不能作为项目检出

此时会弹出一个新建项目向导,之所以会这样是因为我们需要创建一个项目来保存从服务器端取回的文件

<2>从服务器端获取到的是一个完整的项目,例如

此时必须作为项目检出

项目从服务器检出后,会成为一个工作副本,根目录下会自动创建.svn隐藏目录

1.5 提交

①新创建文件后,文件图标上会以“?”标识,表示该文件尚未纳入版本控制

②在新创建的文件上点右键→Team→添加至版本控制,这样文件图标上会显示“+”,表示当前文件已纳入版本控制,但还未提交至服务器。

③在要提交的文件上点右键→Team→提交...会提交文件,在弹出的对话框中可以不填写日志。文件提交后,图标会变为“金色的圆柱体”表示当前文件的版本和服务器端一致。

④文件修改后图标会变为“*”,表示当前文件或目录包含未提交的修改。

1.6 更新

①更新整个项目时可以在项目上点右键→Team→更新

②更新某个具体的文件时,可以在文件上点右键→Team→更新

1.7 共享项目

①在Eclipse中创建的新项目想要发布到SVN服务器端,可以通过“共享”项目实现

②在项目上点右键→Team→Share Project...→选择一种版本控制工具

选择一个资源库位置

切换到Team Synchronizing透视图,选择项目中要提交的内容,通常是项目中的全部内容

1.8 回复历史版本

①在需要回复的文件上点右键→Team→显示资源历史记录→得到如下界面

②选择某一个历史记录点右键→获取内容。文件就会恢复到指定版本的状态,同时图标变为“*”。

③获取历史记录时,如果出现如下错误提示

可以通过将对应版本库中的svnserve.conf文件中的anon-access设置为none解决。

1.9 解决冲突

①什么情况下会发生冲突

<1>两个开发人员,Harry和Sally,分别从服务器端下载了文件A。

<2>Harry修改之后,A变成了A’,Sally修改之后,A变成了A’’。

<3>Harry先一步提交,使服务器端文件的版本也变成了A’

<4>Sally本地的文件A’’已经过时了,此时她已无法提交文件,服务器会要求她先进行一次更新操作。

<5>此时Sally的更新操作有两种可能

(1)Sally所做的修改与Harry不是同一个位置,更新操作尝试合并文件成功。

(2)Sally所做的修改与Harry恰好是同一个位置,更新操作尝试合并文件失败,发生冲突。

<6>发生冲突后,本地工作副本会发生如下变化

(1)文件A中的内容发生如下改变

其中,从<<<<<<< .mine到=======之间是发生冲突时本地副本的内容。从=======到>>>>>>> .r14是发生冲突时服务器端的最新内容。注意这里r后面的数字是发生冲突时服务器端的版本号,有可能是任何整数值,r14只是一个例子。

同时文件图标变成一个“黄色的!”。

(2)与冲突文件同目录下新增文件,扩展名为.mine,其内容是发生冲突时本地副本的文件内容。

(3)与冲突文件同目录下新增文件,扩展名为.r小版本号,例如MyCRM.java.r13,其内容是冲突发生之前,服务器端的文件内容,可以作为解决冲突的参照。

(4)与冲突文件同目录下新增文件,扩展名为.r大版本号,例如MyCRM.java.r14,其内容是冲突发生时,服务器端的文件内容。

②解决冲突

(1)在冲突文件上点右键→Team→编辑冲突...→出现如下界面

以对比的方式将本地内容与冲突内容显示出来,其中左侧为本地内容,右侧为冲突内容。其中本地内容是可以修改的。

(2)根据需要和实际情况将本地内容更正——这个过程很可能需要牵涉冲突的两位开发人员进行必要的沟通——机器与程序目前还不能完全取代人工智能。更正后文件图标会变成一个“四角形”,同时冲突文件内的<<<<<<< .mine、=======以及>>>>>>> .r14等标记都会被去掉。

(3)在冲突文件上点右键→Team→标记为解决

此时.mine文件和.r版本号文件都会被自动删除,冲突文件的图标变为“*”,表示可以提交。

(4)提交文件,文件图标变为“金色圆柱体”。

SVN学习(三)——在Eclipse 中安装和使用SVN客户端插件的更多相关文章

  1. JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  2. Eclipse中安装使用SVN

    参考网址: Eclipse中使用SVN - 流逝的是岁月,沉淀的是经典 - 博客频道 - CSDN.NET http://blog.csdn.net/v123411739/article/detail ...

  3. SVN工具的使用 和在Eclipse中安装GPD插件:(多步审批流,因此选择使用工作流(JBPM)来实现)

    前言 重点解说SVN工具的还原版本号.   1.提交svn之前.要先更新文件.假设更新之后有版本号冲突的话.就线下解决掉冲突,在把该文件标记为已经解决冲突. 正文 使用SVN还原历史版本号 water ...

  4. 在Eclipse中安装SVN客户端插件

    在Eclipse中安装SVN客户端插件 1.1  Eclipse插件应用市场 在Eclipse中访问Eclipse Marketplace Client可以搜索Subversion,下载插件,按提示安 ...

  5. Eclipse中安装SVN插件的艰难旅程

    我们写Java程序的人都知道Eclipse,也装过一些插件,比如Android开发的使用需要安装ADT等,如果代码提交的话我们可能需要安装git和svn的插件,但是这个插件我以前听过,但是一直没有安装 ...

  6. Eclipse中安装MemoryAnalyzer插件及使用

    Eclipse中安装MemoryAnalyzer插件 一.简介 Eclipse作为JAVA非常好用的一款IDE,其自带的可扩展插件非常有利于JAVA程序员的工作效率提升. MemoryAnalyzer ...

  7. 在Eclipse中使用版本管理工具SVN

    近日工程中,逐渐感觉到原来复制粘贴代码的笨重,突然想起以前有人和我说起过Git和SVN之类的版本管理工具.由于平时主要是写Java代码,所以能够在Eclipse中使用SVN工具进行版本管理就可以说是很 ...

  8. 在Eclipse中安装python插件的方法

    一个博士给了我一堆代码,原本以为是C++或者java写的,结果是python,我压根没学过呀,不过本着语言都是相通的原则,我硬着头皮开始学习Python,当然先学习安装IDE(以前学习一门新语言,我会 ...

  9. (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(七)——eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -&g ...

随机推荐

  1. [libgdx游戏开发教程]使用Libgdx进行游戏开发(7)-屏幕布局的最佳实践

    管理多个屏幕 我们的菜单屏有2个按钮,一个play一个option.option里就是一些开关的设置,比如音乐音效等.这些设置将会保存到Preferences中. 多屏幕切换是游戏的基本机制,Libg ...

  2. (三)mysql数据库基本操作

    (1)SQL语句:结构化查询语句 DDL语句 数据定义语言:数据库丶表丶视图丶索引丶存储过程丶函数丶create drop alter DML语句 数据库操作语言:插入数据insert,删除数据del ...

  3. 位运算和enum中的位运算

    1.位逻辑非运算 ~ 位逻辑非运算是单目的,只有一个运算对象.位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1:如果某一位等于1,就将其转变为0. 比如,对二进制的100 ...

  4. Android技巧:查看当前界面对应的活动

    常常接手别人的android代码,非常头疼不知道界面所对应的活动是哪一个.下面所说的方法可以完美解决. 新建一个BaseActivity类,继承自AppCompatActivity,并重写onCrea ...

  5. luogu P1186 玛丽卡

    题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城 ...

  6. 【枚举】【前缀和】【map】ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) C. Molly's Chemicals

    处理出前缀和,枚举k的幂,然后从前往后枚举,把前面的前缀和都塞进map,可以方便的查询对于某个右端点,有多少个左端点满足该段区间的和为待查询的值. #include<cstdio> #in ...

  7. 【计算几何】【辛普森积分法】UVALive - 7076 - Highway

    春节前后想了好久才在队友的讲解下想明白…… 太难讲了,我就不讲了,大概就是考虑直着走到高速上还是斜着走到高速上,然后平移直线和大圆相切,把生成的最大的“桥”和大圆并一下就行了. #include< ...

  8. HashMap源码-Basic hash bin node

    /** * Basic hash bin node, used for most entries. (See below for * TreeNode subclass, and in LinkedH ...

  9. Easyui treegrid 无法显示树形结构解决办法

    easyui treegrid 中检查了数据结构没有问题的,但就是不展示树形结构, 检查发现原来是 var columnsAll = [ { title: '任务ID', field: 'TaskID ...

  10. [测试技术分享]easyFuzzer使用案例分享

    easyFuzzer使用案例分享 1.简介: easyFuzzer是wooyun的一位白帽子(光刃)提供的一款用于fuzz文件的工具.平时主要是和网络协议安全打交道,和本地软件安全打交道比较少,所以没 ...