1. SVN服务端VisualSVN
安装
2. SVN服务器端配置
(1)创建一个项目
- SVN环境(就是安装目录)下创建共有目录作为项目目录
-
WebApp
目录下新建文件夹Shop
(理解为一个项目),作为版本仓库
-
创建版本仓库,
DOS环境(win+R+cmd打开dos窗口)
下基本语法svnadmin create 版本仓库绝对路径
-
如果shop版本仓库配置成功,则文件夹会配置一下结构
(2)进行服务器端监管
- Apache,通过浏览器输入
http://localhost或者IP地址
访问到htdocs目录下的相关文件- SVN,通过
svn://localhost或者IP地址
访问到相关数据仓库
- 基本语法
svnserve -d -r 输入监管目录
直接指向版本仓库- 光标闪烁表示监管中…此时的
svn://localhost或者IP地址
就可以指向版本仓库(理解:Shop项目)
(3)权限控制
默认情况下,SVN服务器是不允许匿名用户上传文件到服务器端——所以要更改项目的相关配置文件。
更改代码,让所有用户都具有可读可写权限
3. SVN客户端的安装与配置
(1)安装客户端SVN
默认安装完成后重启电脑即可
双击汉化包完成汉化
(2)使用客户端软件连接服务器端SVN
- Checkout检出
- 在项目目录下,鼠标右键操作
- 选择TortoiseSVN
- 选择版本库浏览器
- 输入SVN服务器地址(结果会指向监管的版本仓库Shop)
- 单击检出功能,系统会自动检出数据到客户端
出现 .svn
表示检出成功
4. 客户端SVN的相关操作
(1)三大指令
① (Checkout)检出操作
注意:Checkout只在第一次链接操作一次,之后的更新操作使用update指令
- 链接到SVN服务器端
svnserve -d -r 版本仓库路径
- 更新服务器端数据到本地
② (Commit)提交操作
3. 有其他用户加入的情况下
- 先导入项目 TortoiseSVN
–版本库浏览器–输入SVN服务地址svn://...
–右键检出操作
- 其他用户对项目进行修改、开发完成后的提交操作
- 右键选择提交
即可
③ 项目经理(Update更新操作)
- 在项目目录下,右键,单击
SVN更新
即可
(2)图标集与忽略功能
① 图标集(掌握9种)
② 忽略功能
提交的时候就不会出现在提交文件列表内
(3)版本回退
- 在空白处点击鼠标右键,采用如下图所示操作
- 选择【日志功能回退】,根据日志信息,选择要回退的状态
- 选择要回退到的版本
- 选择要回退到的版本
(4)版本冲突
概念:同时修改某个文件,就会有冲突
- 合理分配修改时间
- 合理分配负责模块
- 通过SVN解决版本冲突问题
- 更新服务器端数据到本地
- 删除除了
index.php
之外的三个文件 - 打开
index.php
文件进行修改整合 - 重新提交数据到SVN服务器端即可解决版本冲突问题
- 更新服务器端数据到本地
5. 配置多仓库和权限控制
- 在实际项目中,如何进行多项目的监管?
- 进行
svnserve
进行仓库监管,但监管指令只能监管一个文件夹,不能同时监管多个仓库
(1)配置多仓库
直接监管总目录达到监管所有仓库的目的
- 监管总目录:
svnserve -d -r 项目总目录
- 访问总目录下的xx项目:
svn://localhost/xx
(2)权限控制
前提:开启权限功能
- 默认情况下,以下两个文件都是禁用的,如需使用,要开启权限
- 开启权限步骤
-
点击打开
项目仓库/conf/svnserve.conf
文件 -
注释匿名用户的可读写权限
-
开启认证文件与授权文件
-
编写认证文件
passwd
,定义相关用户名跟密码
-
编写授权文件
authz
-
进行相关配置
-
测试功能
-
6. SVN服务的配置与管理
(1)配置自启动服务
追加项目到Windows的服务中,让项目随着系统的启动而运行;
不需要开启监管指令也可以使用svn功能
注意:出现“拒绝访问”可能是因为没用管理员账号运行
-
打开doc面板(以管理员身份运行cmd)
-
输入以下指令
sc create 自定义新建的服务名称 binpath=空格"svnserve.exe路径 --service -r \"版本仓库WebApp路径\"" start=空格auto
- 对于svn配置自启动命令,给仓库路径加入双引号包裹
这里是加入的 \” 因为外层已经有了双引号.
- 注: 只能用双引号,用单引号包裹,仍然出现同样的错误。
-
打开
控制面板--管理工具--服务
查看- 启动服务
(2)创建批处理文件处理[服务]
创建bat文件,输入下列内容,双击运行实现效果
- 启动服务
net start 服务名称
- 停止服务
net stop 服务名称
- 删除服务
sc delete 服务名称
7. 模拟真实的开发环境
服务器自动更新数据到Web服务器端
钩子程序:同步数据
- 钩子程序
- 一些版本库事件触发的程序,比如:新修订版本的创建、未版本化属性的修改
- 默认情况下,钩子的子目录(
版本仓库/hooks/
)内包含各种版本的库钩子模板
如何通过钩子程序实现数据的同步更新
post-commit.tmpl
:事务完成后所触发的钩子程序- 钩子程序默认情况下可以采用【批处理指令】或者【Shell指令】来进行编写
(1)通过批处理指令编写钩子程序
- ① 指定svn服务端工作目录
- 设置服务端SVN路径
SET SVN = "D:\XXX\bin\svn.exe"
- 设置服务端SVN路径
- ② 指定Web服务器工作目录
- 数据完成之后想要更新的目录的位置
SET DIR = "服务器端项目的运行目录"
- 数据完成之后想要更新的目录的位置
- ③ 通过 update 指令实时更新数据到dir目录下
SVN UPDATE %DIR%
(2)具体使用步骤
-
复制
post-commit.tmpl
为post-commit.bat
文件
-
在文件内填入相关批处理指令