一.SVN的特点
操作简单,入门容易
支持跨平台操作
支持版本回退功能
二.获取 SVN 软件
服务端软件 VisualSVN
网址:https://www.visualsvn.com/
客户端软件:Tortoisesvn
网址:https://tortoisesvn.net/downloads.zh.html
三`SVN初次使用
1.Checkout(检出)
2.Update(更新)
3.Commit(提交)
服务器SVN 通常地址
svn://192.168.1.1/shop
四.SVN服务器端安装
服务器端软件纯处于软件/服务器端
五.SVN服务器端配置
1.创建一个项目
①首先在SVN服务器端创建一个公有目录 WebApp作为项目目录
②在WebApp
③ 创建版本仓库,DOS环境基本语法:
svnadmin create Shop 文件夹路径
2.进行服务器端监管
Aapache http://localhost 或(ip 地址) 访问到 htdocs 目录下相关文件
SVN svn://localhost 或 访问到相关数据仓库
基本语法:
svnserve -d -r 版本仓库路径
3.权限控制
默认情况下,svn服务器是不允许匿名用户上传文件到服务器端的,所以必须更改项目的相关配置文件.
六.SVN客户端软件安装与使用
在 tortoisesvn 软件安装完成,要重启一下
如果鼠标右键出现如下图标,则表示安装成功.
使用客户端软件连接SVN服务器
首先在你的项目目录鼠标右键 → TortoiseSVN → 版本库浏览器 → 输入SVN服务器地址:
检出一下.
显示隐藏文件
SVN 使用详解
SVN 三大指令
checkout 检出操作
链接到SVN服务器端
更新服务器端数据到本地
模块开发完毕后上传
项目经理(Updadte更新)
图标集
- 常规图标
含义:当客户端文件与服务器端文件完全同步时,系统显示以上图标.
2)修改图标
含义:当客户端文件有修改但未提交,此时将自动显示以上图标 - 冲突图标
含义:当客户端提交的文件与服务器端数据 有冲突,系统会显示该图标 - 只读图标
含义: 当客户端文件以只读形式存在时,将自动显示该图标
5)删除图标
当服务器端数据已删除,那么客户端该 文件将显示以上图标
6)锁定图标
含义:当服务器端数据已锁定,那么客户端温江自动显示锁定图标
7)增加图标
含义:当我们编写文件已添加到提交队列,那么系统将自动显示该图标
8)忽略图标
含义: 客户端文件已忽略,不需要进行提交上传,那么将自动显示该图标
9)无版本控制图标
含义:当我们编写的文件没有添加到上传队列时,系统自动提示该图标
七. SVN使用 版本回退
1.什么是版本回退
有些时候,软件的运行可能使开发者或使用者不满意,这是我们需要把当前版本回退到以前的某个版本.
2.版本回退功能
空白区域,鼠标右键,更新至版本
根据日志显示需要的版本
八.SVN使用 版本冲突
解决之道
① 合理分配项目开发时间
旺财 上午开发
小强 下午开发
②合理分配项目开发模块
旺财 购物车模块
小强 文章模块
③ 通过SVN解决版本冲突问题
1)更新服务器端数据到本地
2)删除 除 第一个文本.txt 以外的其它三个文件(两个)
3)修改整合 第一个文本.txt 冲突文件
4)重新提交数据到SVN服务器端,即可解决版本冲突问题.
九.SVN配置多仓库与权限控制
1.配置多仓库
在实际项目开发中,我们可能会同时开发多个项目,那么我们如何进行对项目监管呢,通过svnserve进行仓库监管,但是监管指令只能监管某一文件夹,而不能同时监管多个仓库.
答:可以通过监管 WebApp 总目录来达到监管所有仓库的目的.
svnserve -d (后台运行) -r(监管目录) WebApp(项目总目录)
①打开 DOS窗口, 输入如下指令
svn://localhost 或者IP地址来访问 D:/svn/WebApp 目录
如果需要访问Shop 项目/ wechat项目
shop: svn://localhost/Shop
wechat: svn://localhost/wechat
2.权限控制
如果要使用权限控制有一个前提,必须首先开启权限功能
在每一个仓库都有一个conf文件夹,里面有三个文件
authz 文件 授权文件
告诉哪些用户具有哪些权限
passwd文件:认证文件
表示当前asvn系统中某个仓库具有哪些用户以及相应的密码
默认情况下,以上两个文件都是禁用的,如果需要使用,.首先要开启以上两个文件svnserve.conf 配置文件
开启步骤如下:
①注释匿名用户的可读可写权限
这是SVN服务器端根目录
②开启认证文件与授权文件
③编写认证文件定义相关用户名和密码
④ 编写授权文件
⑤测试
输入admin,admin888 超级管理员
十.SVN服务的配置与管理
1.配置自启动服务
①打开运行 ,输入cmd指令,打开DOS环境
②输入指令
③查看系统服务
控制面板→管理工具→服务
2.创建批处理文件
启动服务 net start 服务名称
停止服务 net stop 服务名称
删除服务 sc delete 服务名称
以上功能在实际开发中经常使用,所以可以封装为.bat批处理文件,效果如下:
十一.模拟真实开发环境
钩子程序:
十二.SVN扩展程序
1.什么是BAE云引擎
百度应用引擎(Baidu App Engine,简称BAE)是国内商业运营时间最久的PaaS平台,拥有庞大的用户群体,提供弹性、便捷、一站式的应用部署服务,支持PHP/Java/Node.js/Python等各种应用。您只需上传应用代码,BAE自动为您完成运行环境配置、应用部署、均衡负载、资源监控、日志收集等各项工作,大大简化部署运维工作。
十三.SVN使用常见问题
1.项目初次怎么上传到库
空白处右键→TortoiseSVN→版本库浏览器→右键添加文件夹(你的项目)
这时候你的项目已经放到库里面了, 接下来到你的项目根目录处右键 检出,
选择刚才在库里面添加的文件夹,检出至你需要的位置,确定.
2.如何删除文件并更新
本机删除掉的文件会随着先更新的操作使得本机已经被删除的文件从服务器上down下来。这种情况该怎么解决?
方法一:如果要删除那个文件,就要用svn 菜单的 删除,而不是 系统的删除…这样在提交前,更新svn,那个文件不会down下来.
方法二.一般可以直接commit,提示有问题时可以update一下,再commit一般就好了。这种 update 主要起到的是解除锁定的作用。你本地删除了文件,update不会又回来,因为你本地版本比服务器高,revert 才会放弃修改恢复到原来。
3.新添加的文件在提交栏看不到
更新一个项目,新建了好些文件夹文件,完成这部分的工作后,打算上传,结果,提交栏没有我刚才操作的这些文件和文件夹,该怎么解决?
方法一:在commit对话框底部勾选 show unversioned files即可.
方法二.在你操作的文件夹处2右键,进入属性,
点击‘Properties’,如图
发现全局忽略中有个*,点击Edit,如下:
删除第一行的*,它代表所有都忽略,点击‘ok’保存
然后再试试,发现一切都正常了.
4.Unity项目使用SVN,提交那几个文件
新建一个Unity Project之后,发现产生了很多目录和文件,其中只有两个是需要版本管理的:Assets、ProjectSettings。其他的都是自动生成的:
1.*.csproj,*.sln这些IDE的工程文件是自动生成的;
2.Library,主要存的是一个本地的Cache文件,不要加到版本管理中;
3.Tem,这个是Build过程中产生的文件;
Unity Project Settings
为了配合SVN,需要对Unity工程做一些设置:
菜单:Edit->Project Settings->Editor:Version Control 选择为[Visible Meta Files];
菜单:Editor-> Project Settings->Editor:Asset Serialization Mode选择为:[Force Text]
菜单:Edit->Preferences -> Packages:Repository选择为[External];