SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
开始新一天的工作: 1、从服务器下载项目组最新代码。 2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。 3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。 这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。
在实际开发中,合作开发是必不可少的,一个优秀的项目后面大多都是有一个优秀的团队的,但是人多了自然也就带来了一个显而易见的缺点,那就是代码过于分散,因为每个人负责的功能不一样,所以如何合理高效的管理团队中所有人的代码就显得尤为重要了,而SVN就是一个用来管理项目的版本管理系统。只需要在中心服务器上创建一个项目,团队中的成员需要对该项目进行更新时,只需要到服务器上将项目检出到自己电脑上,然后进行相应功能的实现,实现功能后,只需要再将自己写的代码提交到服务器上,团队中的其他成员就可以使用自己实现的功能了。当然这里面还涉及到版本控制以及分支创建及合并,当然这都是后话了。今天我主要是分享一下SVN在eclipse中的安装以及简单使用。
首先准备工作:安装好eclipse以及一个SVN服务器,假设你已经有了啊,反正我是有的。对于没有SVN服务器的同学,可以去到官网下载一个,然后在自己电脑上安装,将自己的电脑作为一个SVN服务器,不过这样子严格来说是不可以的,因为我们用一个SVN管理就是为了将自己的代码备份,怕万一自己的电脑出现问题,导致代码丢失。不过如果只是为了学习,我们暂时可以将自己的电脑作为一台SVN服务器,其官网地址:/server/download/,安装过程很简单,一直下一步就好了。这里不做重点。
1、安装subclipse插件
1-1、上述准备工作完成后,接下来就需要到eclipse中下载SVN插件,以方便可以直接在eclipse中对托管在SVN上的项目进行提交及更新。打开eclipse后,点击help---->eclipse marketplace进入到eclipse插件安装。
1-2、然后在搜索框中输入subclipse----->回车,找到subclipse,然后点击右下角的install进行安装。
1-3、点击安装后,等待一段时间,会出现提示你需要安装的文件,默认全选就好,然后点击confirm。
1-4、进入到下一步后,就会问你是否同意安装,跟我们在电脑上安装软件是一样的,如果不点击同意安装,是不能安装的。然后点击finish。
1-5、点击finish后,我们就可以在eclipse软件的右下角看到当前安装进度,在安装过程中可能会弹出某些提示框,我们点击同意就好了,然后一直等待它安装完成。安装完成后,会提示我们是否立刻重启eclipse,因为需要重启eclipse后,新安装的插件才能使用。我们点击立即重启:restart now。
2、SVN资源库
2-1、到这里我们就已经在eclipse中按装好了subclipse了,接下来我们就可以直接在eclipse中看到我们的SVN资源库中有哪些项目了,我们点击Window---->show view---->other,然后选择SVN资源库,点击open。这个时候SVN资源库会出现在“问题视图”窗口中。注:问题视图即我们常说的“后台”,用于显示代码或项目配置的错误,双击错误项可以快速定位代码。
2-2、通过上面的操作,我们就打开了SVN的资源库了,那么现在我们添加一个资源库,可以在窗口内单击右键----》新建----》资源库位置,或者点击右上角的添加SVN资源库按钮,如下图所示:
2-3、添加新的SVN资源库,在位置“url”中输入正确的服务器地址,然后Finish即可。在工作中,我们都是可以直接问上司就可以知道服务器地址了。点击finish后,如果出现了需要我们填写用户名和密码的窗口,那么就把我们自己的svn用户名和密码填写上就好。
3、上传项目
3-1、我们选择好SVN资源库,现在可以看到当前SVN资源库中是空的,什么都没有,那么我们现在就往SVN服务器上传一个测试项目,我们在我们的eclipse项目列表,随便找一个项目,然后点击右键---->team----->share project,然后选择SVN,再点击next。
3-2、选择SVN资源库中的文件夹名,或者可以使用指定的模块名,这个是已经在服务器指定好的,finish完成。
3-3、将项目共享到SVN服务器,需要给项目重新制定位置,我们这里选择项目名称作为该文件夹名称,然后单击finish。导入完成时,它会提示我们是否现在打开项目透视图。我们没必要打开。那么现在我们就可以在SVN资源库位置看到我们刚刚上传的项目文件了,这个时候其他成员就可以直接到该SVN服务器地址位置进行下载。
3-4、我们每次在提交时,都会需要对此次提交内容进行注释,以便其他成员知道我们做了什么,也方便日后自己进行版本回滚时,知道回滚到什么位置。给提交填写好注释后,就可以点击OK将此次改动提交到SVN上了。
3-5、如果我们需要查看当前项目的提交历史记录,只需要到SVN资源库中,找到该项目,然后选中该项目,单击右键----->显示资源历史记录。就可以查看到该项目的所有提交历史,以及是由谁提交的,等信息都可以一目了然。
4、下载及更新项目
4-1、为了可以将SVN服务器中的项目导入到我的eclipse中,我把我eclipse中的项目删除了。然后我们到SVN资源库,找到我们需要下载的项目,选中它单击鼠标右键--->检出为。即可直接将SVN上的项目导入到我们当前eclipse的工作目录下,然后直接在eclipse的项目列表中就可以看到我们刚刚检出的项目。
4-2、当我们本地上已经有了该项目后,但是当SVN服务器上的项目已经被其他成员更改过了,所以需要将SVN服务器上的最新的项目更新到本地。那么我们可以直接选中项目,单击右键--->team---->更新。
最后如果我们需要删除某个SVN上的项目时,只需要到SVN资源库中找到对应的项目,单击右键---->删除。就OK了