SVN简介:
SVN是Subversion的简称,是一个开放源代码的版本控制系统,将工程代码集中在服务器上进行一个统一的集中式管理,从而能够方便地控制代码版本,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,而且通过使用SVN开发人员之间能够很方便的更新、提交工程代码,并且如果工程的版本有冲突还会有提示等等。
集中式管理工作流程图:
SVN的安装步骤有三,一是服务器端的安装,二是客户端的安装,三是开发工具内嵌客户端的安装。
SVN服务器端的安装:
SVN的服务器端可以在Windows操作系统上安装也可以在Linux操作系统上安装,关于服务端的下载可以在官网或者在可信任的网站下载,在此仅示例Windows操作系统下的安装。
1.官网下载:
SVN官网下载地址:
https://www.visualsvn.com/server/download/
2. 安装下载好的服务端:
如果出现这个提示的话,是因为443端口被其他服务占用了,需要换一个端口:
安装完成后,进行服务端的配置:
1.先添加有一个共享目录:
2. 创建几个用户:
3.创建一个组,可以把用户分配到这个组里
4.把共享目录的组关联起来,分配操作权限
5.重新启动服务器
现在服务端的相关设置和用户的创建、分配权限就完成了。
SVN客户端的下载安装:
SVN需要客户端才能将文件或项目工程上传到刚刚在服务器上配置的共享目录中,关于客户端的下载可以在官网或者在可信任的网站下载。
1.官网下载:
官网下载地址:
https://tortoisesvn.net/downloads.html
2.安装下载好的客户端:
3.客户端上传文件到服务器的共享目录中:
安装完客户端后右键点击一个文件夹就能看到SVN Checkout和TortoiseSVN,SVN Checkout是用于将服务器上的文件夹下载 下来,点击TortoiseSVN里的Impor则可以将一个文件上传到服务器中:
右键:
4.点击SVN Checkout下载服务器共享目录下的文件夹,下载的文件夹中会带有.SVN名称的文件夹里面是一次些配置文件:
5.不带有.SVN文件的下载:
6.修改好的文件需要提交上去(commit):
使用SVN Checkout方式下载的文件夹因为带有.SVN,所以如果对这个文件夹里的某个文件进行了修改的话,会发现修改后这个文件夹显示一个叹号,例如我修改一个文件:
这是因为里面的文件内容发生了变动,导致与.SVN里的配置文件记录的不符了,如果确认要保留这个修改的话,这就需要右键点击这个文件夹,使用SVN Commit提交上服务器端即可:
现在将修改的文件提交到服务端后,那个文件就不会显示叹号了,所以修改好的文件都得提交才行:
7.想要获得最新的文件,需要更新一下(update):
提交就相当于更新了文件夹的内容,工程的话相当于更新了版本,如果想获得某个文件夹或工程的最新版本的话,需要右键点击SVN update来从服务器端更新,例如我把文件都删掉,点击更新时会从服务器把完整文件更新下来:
如果A开发人员对其中一个文件进行了修改,然后提交到了服务端,这时候B开发人员就可以点击更新来更新A修改后的文件:
SVN开发工具内嵌客户端的安装:
上面我们使用的是SVN的客户端,在操作系统中进行的下载、更新、提交,但是上传和下载工程代码不是很方便,因为这些操作不能直接在开发工具进行,我们是用开发工具写代码的,所以需要在开发工具中安装一个内嵌的SVN客户端。
这个插件可以在Eclipse的官网中下载到,有三种方式,一种是下载压缩包然后解压到Eclipse的目录下,一种是复制下载链接然后到Eclipse里进行下载,一种是直接在Eclipse里进行搜索安装:
第一种安装方式,下载插件包解压后,把文件拖到Eclipse的安装目录,然后重启Eclipse:
Svn插件包下载地址:
http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
第二种安装方式,使用链接在Eclipse里的插件下载页面下载,使用这个方式最好挂个×××不然很有可能会因为下载不到一些文件而发生异常:
Eclipse链接地址:
https://projects.eclipse.org/projects/technology.subversive/downloads
链接:
http://download.eclipse.org/technology/subversive/2.0/update-site/
等待安装完成:
安装完成,点击Restart Now重启Eclipse:
第三种方式是直接在Eclipse中的Eclipse Marketplace里搜索SVN,这是一个Eclipse 的插件市场可以直接从里面搜索需要的插件并下载,这种方式是最方便直接的,同样的最好挂个×××以免因为下载不到一些文件而发生异常导致安装失败:
安装完成,点击Restart Now重启Eclipse:
在这个工程选择页面中能看到SVN夹子,表示安装成功:
现在就可以在Eclipse中使用SVN插件了,先右键点击一个工程,然后点击Team里的Share Project进入到以下界面:
配置新的资源库:
使用已有的资源库:
如果出现以下错误就检查一下是否安装了Subversive Connector,如果没有安装则需要手动安装:
进入以下界面查看Subversive Connector:
没有安装的话可以点击Get Connecto通过网络安装:
等待安装完成:
可能会出现这个警告:
安装完成,点击Restart Now重启Eclipse:
如果无法通过Get Connecto安装的话就自行去官网下载压缩包,然后使用Eclipse的本地安装:
压缩包下载地址:
https://polarion.plm.automation.siemens.com/products/svn/subversive/download
解压后把文件复制到Eclipse的安装目录下,然后重启Eclipse:
最后设置一下Subversive Connector:
接着进行之前没完成的最后一步操作,这一步会把这个工程上传到服务器里:
工程目变成这样,并且Team里多了很多的选项代表配置成功:
现在可以做个实验,写一个类里面写一些代码,然后将工程提交到SVN服务器,然后在另一个Eclipse里下载这个工程:
代码示例:
点击Commit提交:
提交完成后在另一个Eclipse下载这个工程的文件,正在下载之前先记得更换一下Subversive Connector,然后右键弹出菜单点击Import进入到以下界面:
下载成功:
更新工程:
例如我再写几行代码然后提交到服务器上,让其他的Eclipse更新:
然后在另一个Eclipse中点击update更新:
刚刚写的代码一个不漏地更新下来了。
工程版本冲突示例:
例如我又写了几行代码,然后提交到服务器上,接着另一个Eclipse也增加了几行代码并且也提交到服务器上,这时因为我是先提交的,所以后提交的这个工程就会出现冲突报错:
结果报错了,提交失败,项目已过期:
由此可见SVN能很好地管理工程版本冲突的问题。
然后进行更新工程还能看到帮你把冲突的代码列出来了:
SVN还可以锁定工程,锁定之后别人就无法对这个工程进行提交,例如我先进行工程提交然后再把工程锁定:
点击:
现在另一个Eclipse要提交这个工程就会报错了:
SVN的常用功能就以上几种,提交、更新、锁定工程、从服务器导入工程等等。