svn版本控制-实用篇
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了svn版本控制-实用篇相关的知识,希望对你有一定的参考价值。
SVN是Subversion的简称,是一个自由开源的版本控制系统。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具,后续我们会学到。
目录
5、客户端-IDEA和eclipse的svn插件的安装与使用
1、SVN基本概念
用户之间并发修改和提交代码,怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?
复制-修改-合并方案(Subversion默认的模式)
在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
锁定-修改-解锁方案
在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。
Subversion支持Linux和Windows,更多是安装在Linux下。
svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
2、服务器端-VisualSVN安装与配置
SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有Eclipse的Svn插件,以及TortoiseSVN(小乌龟)。SubVersion 官网:Apache Subversion
官网安装包地址如下:Apache Subversion Binary Packages
直接下载安装就可以,很方便。
3、visualsvn的使用
在开始运行中查找visualSVN Server Manager就可以打开图形化管理界面,可以在图形画管理界面创建工程目录,创建项目,以及权限分配等。
1)创建仓库,右键,如下即可创建。
2)创建用户,右键users,并点击创建用户,输入用户名和密码即可。
用户创建完成可以输入url,并输入用户名和密码,然后去浏览器访问仓库。
3)设置访问权限,对仓库bos右键选择Properties,然后进入Security进行授权操作。
4)创建组,右键Groups创建组,输入组名即可。
5)再创建一个用户并为用户分配组,让多个用户在一个组。
6)我们可以直接对组进行授权,这样组内的元素就都可以访问仓库了,如下:
4、客户端-TortoiseSVN安装与使用
它是一个基于windows系统的svn图形化界面.
官网安装包地址如下:Apache Subversion Binary Packages
下载安装比较方便,不再赘述。
1)在客户端访问服务器端仓库,在桌面右键选择TortoiseSVN,在选择repo-broswer,输入url即可
2)将服务器的项目检出checkout,桌面创建一个文件夹小王,文件夹内右键选择checkout,如下几栏分别为仓库url,本地位置,所有项目,以及本地版本。
3)“小王”文件夹内创建文件hello.java,先add,这个代表的是它要添加到svn服务器。
4)然后右键hello.java文件,选择svncommit,提交就可以,提交完成如下。
文件会出现绿色的勾,如下:表示已经提交到服务器管理。
4)上面的checkout是客户端第一次从服务器下载项目到本地,commit是修改后提交项目到服务器,下面我们看一下update,它是后续将服务器上最新版本的源码下载到本地。
5)如果发现更新错误,想更新会历史版本,我们可以通过查看日志选择更新的版本。选择版本并更新即可。也可以直接选择TortoiseSVN下的update to revision,选择更新的版本即可。
6)如果我想将文件删除,需要使用delete标记删除操作,本地文件会删除,我们需要在它的父目录进行提交,才能真正从服务器删除。
7)导入与导出,Import将本地资源导入到svn服务器。Export导出项目,和checkout的区别,它不存在.svn隐藏文件。
8)冲突问题与解决方法
多个用户同时操作同一个文件时,就可能产生冲突情况。这里面小刘和小王同时修改文件发生冲突,如下:
解决方法:这个冲突产生后如何解决,我们可以采用手动Merge,解决冲突后,重新commit.
上述红色部分就是冲突的,修改冲突,重新提交就可以了。
5、客户端-IDEA和eclipse的svn插件的安装与使用
这个安装过程可以参考如下连接:idea安装svn插件_白马太黑的博客-CSDN博客
(1条消息) svn 安装目录 没有 svn.exe_悟世君子的博客-CSDN博客_svn没有svn.exe
我们主要看一下svn插件的使用方法,具体如下,下面只演示idea中的使用,和eclipse中使用方法大同小异。
由于安装上述链接的方式,在idea中配置了svn的插件,现在我们可以共享项目到版本控制的服务器了,具体如下:
这里需要点击➕,添加指定仓库的url,如下所示:
这样就建立了与服务器仓库的共享,颜色都变成绿色的了,如下:
commit操作,如下可以实现提交项目到svn服务器,具体如下:
提交完成后可以在svn服务器上看到提交的项目代码:
下面演示从svn服务器下载项目到本地,即checkout操作。
如下选择服务器仓库地址,点击加号添加服务器仓库地址,点击checkout即可。
此时,会提示选择检出到本地的目录地址,根据个人情况,选择即可。
此时就将服务器的项目检出到本地了,系统会提示你是否用idea打开本地目录中的文件,你可以点击ok,也可以点击取消。
当然如果是项目刚开始,可以建立一个项目并导入svn服务器,这样大家都能从服务器检出项目和上传项目至服务器。如下:
如果想断开与svn服务器的连接,只需要安装svn Disconnect插件,需要重启idea,在vcs中找到
svn Disconnection,然后断开连接即可。
以上是关于svn版本控制-实用篇的主要内容,如果未能解决你的问题,请参考以下文章