1.SVN的基本概念

1.1 svn简介

SVN是Subversion的简称,是一个自由开源的版本控制系统
Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节
早期,CVS ,后来被SVC代替了,随着android兴起,出现了Git

SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存在一个固定的位置,(仓库),每次从这个位置拷贝更新代码,进行编辑;再把提交后的代码提交到该目录中。多人协作开发也是如此,因此需要一个类似Oracle或者Mysql的服务器用于保存和管理文件(要保存的代码等文件)的服务端–visualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及tortoiseSVN(小乌龟)

1.2 svn图解

java svn插件是什么 java中svn是什么_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)

java svn插件是什么 java中svn是什么_svn_02


java svn插件是什么 java中svn是什么_服务器_03


java svn插件是什么 java中svn是什么_右键_04

3.2 服务器visualSVN 安装与配置

java svn插件是什么 java中svn是什么_java_05


java svn插件是什么 java中svn是什么_java_06


java svn插件是什么 java中svn是什么_java_07


java svn插件是什么 java中svn是什么_服务器_08


java svn插件是什么 java中svn是什么_右键_09


java svn插件是什么 java中svn是什么_svn_10


java svn插件是什么 java中svn是什么_java svn插件是什么_11


最后点击install安装,并去掉自启动选项

3.3创建仓库

空的或者默认结构的,所有人访问,还是不让人访问

打开软件

java svn插件是什么 java中svn是什么_右键_12


右键点击repository,新建仓库

java svn插件是什么 java中svn是什么_右键_13


选择存储类型

java svn插件是什么 java中svn是什么_右键_14


命名

java svn插件是什么 java中svn是什么_java_15


java svn插件是什么 java中svn是什么_右键_16


权限

java svn插件是什么 java中svn是什么_java_17


创建bian仓库成功

java svn插件是什么 java中svn是什么_服务器_18

仓库的访问需要创建User用户,Group里可以新建组,并添加User的成员

给仓库分配权限

右键单击仓库名,选择properties,

java svn插件是什么 java中svn是什么_svn_19

Copy URL to Clipborad 复制后在浏览器里打开

java svn插件是什么 java中svn是什么_服务器_20

4.客户端工具-tortoiseSVN及IDEA下使用SVN

1.下载(与上边的下载地址相同)

java svn插件是什么 java中svn是什么_java svn插件是什么_21


java svn插件是什么 java中svn是什么_svn_22

2.tortoiseSVN安装

一直点next。
安装后重启一下电脑

TortoiseSVN的常用操作

浏览仓库

打开文件夹👉右键选择👉tortoiseSVN👉第一个👉把Copy URL to Clipborad 的路径复制进去,

java svn插件是什么 java中svn是什么_服务器_23


结果

java svn插件是什么 java中svn是什么_java_24

①CheckOut–下载文件到本地文件夹

打开的文件夹👉单击右键👉选择CheckOut👉

java svn插件是什么 java中svn是什么_java svn插件是什么_25


java svn插件是什么 java中svn是什么_java svn插件是什么_26

导入之后·.svn是隐藏文件

java svn插件是什么 java中svn是什么_java svn插件是什么_27


文件夹图标发生变化–表示此文件夹进入到SVN的管理范围内

java svn插件是什么 java中svn是什么_svn_28

②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一下