一、基本概念
SVN的全称是subversion,版本控制系统,它会记住每一次文件的变动。
SVN服务器有两种运行方式:独立服务器和借助于Apache运行,我们这里选择的是独立服务器
SVN存储版本数据也有两种方式:BDB一种事务安全型表类型和 FSFS一种不需要数据库的存储系统
FSFS:一种不需要数据库的存储系统。采用文件系统的方式,替代原来的基于BDB的实现
为什么选择使用fsfs存储系统,而不选择bdb?
因为BDB方式在服务器中断时,有可能锁住数据,所以FSFS方式更安全一点。
SVN 的几个命令
checkout : 把整个项目源码下载到本地
update : 将本地的源码更新至服务器上的最新版本
commit : 将本地源码更新的内容提交到服务器
二、SVN的使用
可以使用命令行和GUI图形化界面使用SVN,官方建议使用图形化界面
三、SVN的下载安装
官网找到
下载
安装,这里记录一下我自己的路径,方便以后查找。注意这里的server port端口号哪一行,表示我们可以通过本机的浏览器使用http的协议访问
端口显示占用,所以我们换一个444
安装完成之后的界面;
我们可以使用浏览器访问:
我们还可以安装客户端工具,使用工具访问,就是一个图形化的界面
安装好了 tortoiseSVN之后,在文件夹里点击右键,进行仓库的浏览
需要填写 之前的路径,还有账号密码就可以了,默认是保存登录信息的,意思就是说下次来的时候就不用输入账号和密码了
我们可以在下面Seeting里面修改;
接下来我们就应该在服务器上download东西了,使用checkout
没有红色的提示,就说明OK了
我们然后在文件里随便写一个Java文件
点击add,这里是添加到了本地仓库
点击commit可以提交到服务器
点击OK,这个时候的版本由0变为了1
自己重新创建一个小张的文件试一下
自己首先需要checkout下,然后发现 之前的HelloWorld就下载下来了
如何回到历史版本
右键 点击 show log ,对需要返回的版本右键点击 Update item to revison
版本产生冲突
当两个用户下载到本地的仓库是同一个版本时,当其中一个用户修改完数据,commit到仓库之后,另外一个用户也是使用的该版本进行了数据修改并提交到了仓库,这时,第二个提交的用户在commit的时候,就会出现error
就会产生下面红色框框里面的文件
如何解决冲突呢?
解决之后,再次提交即可
冲突是可以尽量少的避免的
在你需要提交代码的时候,update一下,然后再次提交
养成良好的使用习惯,使用SVN时每次都是先提交,后更新。每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。