SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
运行方式:
svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
数据存储:
svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
工作流程
集中式管理的工作流程如下图:
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
开始新一天的工作:
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
搭建SVN服务器
机器环境:Win7 64位
Eclipse:Neon.1a Release (4.6.1)
在Win7上安装SVN server作为搭建代码服务器,在另外一台机器上提交代码进行测试。
一、SVN服务器配置
1.1下载与安装
到VISUALSVN SERVER官网下载SVN服务器安装包,下载地址:https://www.visualsvn.com/server/download/
下载后一路下一步,之后启动VisualSVN Server Manager。
1.2用户管理
点击users会弹出添加新用户对话框,设置username、password。
1.3创建仓库
点击repositories,右键,创建新的仓库。文件系统选择Regular FSFS repository。
下一步,设置仓库的名称:
下一步,选择带有分支、标签、主分支的目录结构:
下一步,设置所有用户都有读写权限。
最后,点击create,仓库创建完成。
现在我们已经搭建好了一个SVN服务器,下面看看如何提交代码。
二、Eclipse中使用SVN
2.1安装Eclipse SVN插件
到Eclipse Market搜索SVN,找到Subversive-SVN Team Provider插件,安装即可。
2.2提交Eclipse java代码到SVN
首先在Eclipse创建一个Java工程:
把这个java 工程提交到SVN。单击工程名,右键,team->Share Project->SVN->Create a new repository,之后会弹出来一个如下所示的对话框。URL是SVN服务器上的仓库地址(仓库地址可以通过单击仓库名称,右键,”Copy URL to Clipboard”获取,获取的是本机的pc名加svn 地址:https://elk-PC/svn/ucas/,用本机IP替换pc名:https://192.168.1.102/svn/ucas ):
authentication填写用户名和密码:
下一步,设置工程路径:
点击finish,弹出如下所示的窗口。在这里可以添加注释,选择提交哪些文件。.setting、.classpath、.project不是我们需要的,不勾选。然后点击finish就完成了代码提交。
刷新SVN中的仓库,可以看到提交的工程文件。
三、文件更新、对比
本地代码更新以后,如何同步到SVN呢?
3.1更新文件后commit
新增的文件或者本地文件修改以后,单击该文件然后右键,Team-Commit,之后填写注释,提交即可。
3.2本地文件和线上文件对比
一个项目一般会有多个人同时开发,如果线上的代码更新,如何把本地文件和SVN服务器上的文件对比呢?
可以单击文件名,右键->Team->Synchronize With Repository,选择SVN中的文件和本地文件进行对比,如下图所示:
四、导入SVN工程到Eclipse
把本地的工程删除,演示一下如何从SVN仓库中下拉代码到Eclipse中。
第一步,file->import->SVN->Project from SVN
然后Create a new repository,填写SVN工程地址:
点击finish之后会弹出”Check Out As”对话框。这一步用于设置导入的工程类型,选择第一个:
下一步会弹出工程类型的选择,这一步要结合工程类型来选择,因为代码是java工程,选择Java Project即可。
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛