1.SVN的基本概念
1.1 svn简介
SVN是Subversion的简称,是一个自由开源的版本控制系统
Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节
早期,CVS ,后来被SVC代替了,随着android兴起,出现了Git
SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存在一个固定的位置,(仓库),每次从这个位置拷贝更新代码,进行编辑;再把提交后的代码提交到该目录中。多人协作开发也是如此,因此需要一个类似Oracle或者Mysql的服务器用于保存和管理文件(要保存的代码等文件)的服务端–visualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及tortoiseSVN(小乌龟)
1.2 svn图解
1.3 SVN的两种工作模式
1.3.1 复制-修改-合并方案(Subversion默认的模式)
在这种模式里,每一个客户读取项目配置库建立一个私有工作副本–版本库中文件和目录的本地映射。用户并行操纵,最终,各个私有的复制合并在一起,成为最终版本,此方案通常可以辅助合并操作,但最终要靠人工去确定正误
1.3.2 锁定-修改-解锁方案
此模型里,在一个时间段里,配置库的一个文件只允许被一个人修改,此模式不适合软件开发工作·
2.SVN架构
Subversion支持Linux和Windows,更多安装在Linux里
svn两种运行方式:独立方式和apache运行,
svn存储版本数据方式:BDB一种事务安全型表类型和FSFS一种不需要数据库的存储系统,BDB方式在服务器中断时,有可能锁住数据,所以FSFS更安全
3.windows下的服务器-visualSVN的基本使用
3.1 visualSVN 官网
官网界面→BInary Packages→找到windows对应的visualSVN (根据电脑版本选择32/64)
3.2 服务器visualSVN 安装与配置
最后点击install安装,并去掉自启动选项
3.3创建仓库
空的或者默认结构的,所有人访问,还是不让人访问
打开软件
右键点击repository,新建仓库
选择存储类型
命名
权限
创建bian仓库成功
仓库的访问需要创建User用户,Group里可以新建组,并添加User的成员
给仓库分配权限
右键单击仓库名,选择properties,
Copy URL to Clipborad 复制后在浏览器里打开
4.客户端工具-tortoiseSVN及IDEA下使用SVN
1.下载(与上边的下载地址相同)
2.tortoiseSVN安装
一直点next。
安装后重启一下电脑
TortoiseSVN的常用操作
浏览仓库
打开文件夹👉右键选择👉tortoiseSVN👉第一个👉把Copy URL to Clipborad 的路径复制进去,
结果
①CheckOut–下载文件到本地文件夹
打开的文件夹👉单击右键👉选择CheckOut👉
导入之后·.svn是隐藏文件
文件夹图标发生变化–表示此文件夹进入到SVN的管理范围内
②add-添加文件到本地仓库
创建一个java文件
右键单击文件,TortoiseSVN,add-出现蓝色小图标
③commit-提交本地仓库内容提交到SVN服务器
上边的文件,右键单击,SVN Commit,提交日志,图标变成绿色
④update–更新成最新版本
上边的文件,右键单击,SVN Commit,update
⑤更新到历史版本
文件,右键单击,TortoiseSVN,show log,选择版本,update itme to revision
⑥Delete
文件,右键单击,TortoiseSVN,delete(此时本地删除,服务器端没有删除),在commit,都删除
⑦导入导出
文件,右键单击,TortoiseSVN,import(导入)Export(导出-把bos文件下载,不受版本控制,与checkout区别,不存在.svn隐藏文件),
⑦冲突
多个用户同时修改代码产生冲突,
lg:A修改并提交给服务器,B没update,修改并提交,出错
出现四个文件,
- .java-服务器+本地
- .java.mine–自己的代码
- .java.r1–修改前的文件
- .java.r2—服务器上的文件
⑧解决冲突
避免:提交前,update一下