一、svn简介

Subversion(简称SVN)是一个版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。

二、为什么要使用svn?

在程序的编写过程中,每个程序员都会负责开发一个或多个模块,且开发中会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。

三、在eclipse上安装svn插件

1、Help——>Install New Software

2、点击“Add”,在弹出的窗口里,输入任意name,及对应的SVN地址 http://subclipse.tigris.org/update_1.8.x ,然后点“OK”

3、将出现的2个选项都选中,然后一路点Next,就可以了

4、安装成功标志:

androidstudio svn插件 svn插件是什么_svn

四、svn插件的使用

4.1 从svn检出项目

1、开始检出程序:打开eclipse->文件->import->SVN->选择"从svn检出项目”单击"下一步"

androidstudio svn插件 svn插件是什么_androidstudio svn插件_02

2、以前检出过项目,配置了svn地址,直接选择需要检出项目的svn地址即可,然后跳到第4步。如果是第一次检出项目,从没有配置过svn地址,选择“创建新的资源库位置”,单击“下一步”

androidstudio svn插件 svn插件是什么_androidstudio svn插件_03

androidstudio svn插件 svn插件是什么_服务器_04

3、输入svn地址,如果地址错误这里会有提示,输入成功,单击“完成”

4、进入svn库项目,可以看到树形的项目列表,选择需要检出的项目,单击选中即可,单击“下一步”

androidstudio svn插件 svn插件是什么_服务器_05

5、一般为了方便识别,不需要改检出的项目名称,也不需要进行其他的配置,直接选择“作为工作空间中的项目检出”即可,如果要检出最新版本,什么都不需要更改,直接单击“完成”即可。

androidstudio svn插件 svn插件是什么_版本号_06

6、想选择检出的版本,单击“显示日志”,在弹出框中选择想要检出的svn版本号,单击“确定”,然后检出就可以了

androidstudio svn插件 svn插件是什么_androidstudio svn插件_07

 

androidstudio svn插件 svn插件是什么_svn_08

4.2 svn更新项目

4.2.1 为什么要先更新再提交?

更新:把他人上传的代码更新到本地环境,你在这个环境下把自己的代码合并到这个版本中。

从svn检出的项目每个文件后面都带有版本号、提交时间、提交人等标识,并且这些标识不尽相同。如:

                       

androidstudio svn插件 svn插件是什么_androidstudio svn插件_09

也就是说,一个项目是由若干个具有不同版本号的文件组成的,虽然我早上从SVN上检出的项目中的每个文件都是最新版本的,如index.jsp版本号是2971,但是工作一天之后,当我想要提交代码的时候,我不能保证服务器中项目的每个文件还是和早上刚刚从SVN检出时一样,可能这期间有同事已经提交过代码,所以其修改过的某个文件的版本号就发生了改变,如index.jsp的版本号变2972,而我本地的这个文件的版本号并没有改变,还是2971,如果我同样修改了index.jsp,不更新直接提交,那么我提交的index.jsp版本号也会从2971变为2972,这样将导致我的文件会直接将同事提交的这个文件覆盖,同事的劳动成果将白费。所以,提交代码之前应该先“更新”一下,更新的并不是所有文件,而是项目中的个别文件,这样做的目的是为了能使自己的版本与别人更新的版本保持一致。

4.2.2 更新的步骤

1.右键点击指定的项目,在弹出的关联菜单中点击Team->与资源库同步。此时,我们就进入了团队同步视图。如下图所示:

androidstudio svn插件 svn插件是什么_版本号_10

LocalUpdate.java是我们在本地新建的一个文件,服务器上之前不存在该文件;

NewUpdate.java是其他人新建并提交的文件;

Test.java是本地代码在未更新到最新版本的情况下,对代码进行了更改,出现了冲突。

不同标志的含义:

androidstudio svn插件 svn插件是什么_服务器_11

 

androidstudio svn插件 svn插件是什么_svn_12

点击图中编号①的图标,可以只显示服务器上更新过的文件;

点击图标②,可以只显示我们本地改动过的文件;

图标③就是Eclipse默认的当前视图,同时显示本地和服务器更新过的文件,

可以从箭头的方向判断,箭头向左就是需要从svn更新到本地的,向右就是需要从本地提交到SVN的。

不同标志的含义:

androidstudio svn插件 svn插件是什么_androidstudio svn插件_13

2.在上图中,选中服务器上更新过的一个或多个文件/文件夹,然后点击鼠标右键,在弹出的关联菜单中,点击【更新】,即可将SVN服务器最新版本的该文件更新到本地项目中(选中项目根目录点击【更新】,就表示将服务器上所有改动过的文件全部更新到本地)。

3.解决冲突

冲突情况1:服务器代码和自己代码改动的地方相同

这种情况比较复杂,一般只能将自己的代码保存一份到本地,然后直接将服务器代码更新下来,然后在新的代码上修改自己的逻辑。

冲突情况2:服务器代码和自己代码改动的地方不同

这种情况比较常见,就是你跟别的开发者都在更改同一个文件,但是由于开发任务是分开的,所以更改的地方是不同的,解决办法如下:

①双击冲突文件进入比较视图

②找到服务器上新增的但本地没有的代码块,选中此代码块,点击右上角的按钮将服务器代码复制到本地(其他地方也同此操作),如果点击按钮没用,则关闭比较视图重新打开

③将所有服务器上新增的代码复制到本地文件后,右键冲突文件选择标记为合并即可,此时该文件就会消失在Synchronize视图下,并且该文件的代码已经成功将本地代码和远程代码合并到一起

4.3 提交项目

提交:将合并好的,并能够使项目顺利运行的版本提交到svn,他人再根据你提交的版本开发,保证代码不会冲突。

4.4 还原文件到历史版本

1、右键点击指定的文件,在弹出的关联菜单中点击Team->显示资源历史记录

2、此时会显示当前文件的所有历史版本列表,右键点击指定的版本,在弹出的关联菜单中点击"获取内容",即可将本地文件替换为该版本的文件,最后直接点击"提交"即可。