这里写目录标题
1. SVN的简要概述
1.1 什么是SVN
(1) SVN的全称是SubVersion
(2) SVN版本控制软件可以解决协助开发 远程开发和版本回退的三个主要问题
(3) 特点是操作简单,入门容易。支持跨平台操作 支持版本回退功能(业内也叫时间机器)
1.2 为什么使用SVN
(1)协作开发
(2)远程开发
(3)版本回退
(4)总结一点:都是为了工作
2. SVN的获取及安装步骤
2.1 获取SVN软件
(1) 属于C/S结构软件(客服端与服务端)
服务端软件获取地址:http://www.visualsvn.com/
客户端地址:https://tortoisesvn.net/downloads.html
(1) 细说一下这个的下载,因为有涉及到可以汉化
(2) 点击链接到这页面往下滑。
(3)根据自己的电脑下载即可,接着下滑下载语言包
(4)这里下载语言包,自行选择
2.2 SVN安装步骤
(1) 安装步骤的话就就不细说了,基本都是默认设置。
(2)说一下语言包的安装
(3)双击下载好的语言包,一直下一步即可。
(4)桌面空地右键看到一个,点击settings
(5) 选择语言即可
3. SVN的大致操作流程
3.1 SVN服务端的大致操作流程
(1) 主要三个指令
- Checkout(检出):其主要功能是(这个指令一般只在第一次连接服务器的时候使用)
1.1 建立与服务器的连接
1.2 更新服务器端的数据到本地 - Update(更新):其主要功能是
2.1 更新数据到本地(当你建立完跟服务器端的连接以后,往后的更新服务器数据到本地都是使用这个指令) - Commit(提交):其主要功能是
3.1 当你开发完成以后,提交代码到服务器上
(2)SVN服务端配置
- 创建一个项目
1.1 首先在安装好的SVN目录创建一个公有目录WebApp作为项目目录
1.2 在WebApp目录下创建一个xxxx文件夹,做为xxxx版本仓库(注意这里还没跟svn产生关联,只是个普通文件夹)
1.3 创建版本仓库:进入cmd输入svnadmin create xxxx(xxxx即你创建的文件夹目录比如:D:\SVN\SvnInstall\WebApp\Shallow),成功之后该文件夹下会多出一些东西
(3)服务端监管
- Apache -> http://localhost或ip地址访问到相关目录下相关文件(监管)
- Svn -> svn://localhost或ip地址访问到相关数据仓库
- 基本语法:svnserve -d -r D:\SVN\SvnInstall\WebApp\Shallow(即之前的路径)通过该指令svn://localhost或ip地址就可以直接指向版本仓库
(4) 权限控制
- 默认情况下,svn服务器是不允许匿名用户上传文件到服务端的,所以必须更改项目的相关配置文件
- 更改方法:找到你创建的版本仓库,打开conf目录找到svnserve.conf更改如下配置:找到 #anon-access = read 更改为anon-access = write
3.2 使用客户端软件连接SVN服务器
(1) 当你配置完之后,首先在你的项目目录鼠标右键,选择到Tortoisesvn再选择版本库浏览器,最后输入地址,svn://地址(本地可以直接输入localhost, 即svn://localhost)
(2)在弹出来的框里选中文件夹右键,选择检出,然后一路确定就ok。记得如果没看到有个.svn文件那是因为这是个隐藏文件夹,你要把它显示出来即可。
4. SVN使用详解(三大指令)
4.1 三大指令之checkout(检出指令)
(1) 建立服务器连接
(2) 更新服务器端数据到本地
(3) 注意checkout只在第一次与服务端连接时操作一次,之后都是用Update(更新指令)
4.2 三大指令之Commit(提交指令)
(1) 在你检出的文件夹里添加并开发完代码后,在此文件夹空白地方右键选择提交。进入一个框里面记得完善提交的信息
4.3 三大指令之Update(更新指令)
(1) 在你的文件夹下右键选择更新即可更新数据
5. SVN使用详解(图标集)
5.1 查看各种图标集
(1) 图标集(查看图标种类:找到你项目的文件夹,右键选择Tortoisesvn-在选择设置,看到一个框之后选择图标覆盖-图标集)
(2) 常用图标集介绍
- 常规图标:当客户端文件与服务器文件完全同步时
- 冲突图标:当客户端提交文件与服务端数据有冲突
- 删除图标:当服务端数据删除,客户端就会显示
- 增加图标:当我们编写文件已经添加到提交队列
- 无版本控制图标:当编写文件没有添加到上传队列
- 修改图标:当客户端文件有修改但没有提交
- 只读图标:当客户端文件以只读形式存在时
- 锁定图标:当服务器数据已锁定时
- 忽略图标:客户端文件已经忽略,不需要上传
5.2 忽略功能
(1) 当我们希望有些文件不上传至svn服务器时,应该将该文件或者该文件类型的文件添加到忽略列表
6. SVN使用详解(版本回退)
6.1 两张图了解版本回退
7. SVN使用详解(版本冲突)
7.1 什么是版本冲突
- 在实际开发中,如果两个人同时修改某个文件就会产生版本冲突问题
7.2 解决版本冲突问题
- 错开开发的时间
- 开发各自的模块
- 通过svn解决版本冲突问题
然后进入冲突文件进行更改,再次提交即可
8. 配置多仓库与权限控制
8.1 配置多仓库
-
通过监管WebApp总目录来达到监管所有的仓库的目的:svnserve -d -r D:\SVN\SvnInstall\WebApp
-
访问的时候同样使用:svn://localhost来访问,但是需要加上要监管的某个仓库的名字,比如:svn://localhost/xxxx(xxxx即为你的仓库名)
8.2 权限控制
- 首先开启权限功能(看下面步骤):
- 在仓库里找到conf文件夹,里面有三个文件
- Authz:授权文件,告诉用户有哪些权限
- Passwd:认证文件,标识当前svn系统中某个仓库具有哪些用户以及相应的密码
- 默认情况下这两个文件都是关闭的,开启步骤:
- 打开仓库里的conf里面的svnserve.conf文件
- 注释掉# anon-access = write
- password-db = passwd和authz-db = auth删除前面的#和空格
- 编写认证文件,定义用户和密码:打开passwd(这个文件也在conf文件夹里)
- 编写认证文件定义相关用户名和密码
9. SVN服务的配置与管理
9.1 配置自动服务
进入cmd输入命令:\
sc create xxxx binpath= “D:\SVN\SvnInstall\bin\svnserve.exe --service -r D:\SVN\SvnInstall\WebApp” start= auto
PS:xxxx为创建的自定义名字,前面路径为安装的svn的bin目录里的sevserve.exe,后面你路径为创建的WebApp总目录。最重要的一点:每个= 号后面有个空格
9.2 进入服务的方法,开启服务
9.3 创建批处理文件
- Start xxxx服务:新建一个bat文件,里面编译内容为:net start xxxx(xxxx为你创建服务时名的名)
- ②Stop xxxx服务:新建一个bat文件,里面编译内容为:net stop xxxx
- ③删除xxxx服务也是创建一个bat文件,内容为:sc delete xxxx
10. 钩子程序
(1) 所谓钩子就是与一些版本库事件触发的程序,例如:新修订版本的创建,或是未版本化属性的修改。
(2) 默认情况下,钩子的子目录(版本仓库/hooks)中包含各种版本库中钩子模板
- Post-commit.tmpl: 事务完成后所触发的钩子程序
- 钩子程序默认情况可以采用批处理指令或Shell指令来进行编写
(3) 通过批处理指令编写钩子程序
3. 指令SVN服务器工作目录
4. 设置服务端svn路径: SET SVN=”D:\SVN\SvnInstall\bin\svn.exe”
5. 指定web服务器工作目录: SET DIR=”D:\Users\SVN_Test\Test06”
6. 通过update指令实时更新数据到DIR目录中: SVN update %DIR%
7.具体操作:
- 复制post-commit.tmpl为post-commit.bat文件
- 填入相关指令
- 创建一个新项目并更新svn数据到本地
- 然后添加文件更新后,D:\Users\SVN_Test\Test06里里面也会自动更新