一、SVN介绍
SVN是Subversion的简称,是一个自由开源的版本控制系统。
Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。
早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具,后续我们会学到。
(一)SVN基本概念
- checkout:把整个项目源码下载到本地
- update:将本地的源码更新至服务器上的最新版本
- commit:将本地源码更新内容提交到服务器
问题: 怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?
- 复制-修改-合并方案(Subversion默认的模式)
在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。 - 锁定-修改-解锁方案
在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。
(二)SVN架构
- Subversion支持Linux和Windows,更多是安装在Linux下。
- svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
- svn存储版本数据也有2种方式:BDB一种事务安全型表类型和FSFS一种不需要数据库的存储系统。
- 因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
二、SVN使用
本章节主要介绍常用的svn工具,如window下svn服务器VisualSVN,客户端工具TortoiseSVN以及IDEA中svn插件的使用。
SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有IDEA的Svn插件,以及TortoiseSVN。
(一)服务器端VisualSVN安装与配置
1.VisualSVN的下载
2.VisualSVN的安装
端口号如果被占用就要换新的端口号。
win+r 打开运行 sevices.msc,这个服务要开启,这样我们就可以在开始运行中查找 VisualSVN Server Manager,打开其图形化管理界面并使用:
3.VisualSVN创建仓库
4.VisualSVN权限控制
(1)创建用户
(2)创建组,可以把用户合并到一个组里面
(3)分配权限
(4)浏览器访问仓库
打开浏览器,在地址栏粘贴刚刚复制的URL,输入有权限访问该仓库的用户的用户名和密码:
于是就访问到刚刚创建的仓库了。