SVN不完全指南(使用)

来源:互联网 发布:对于人工智能的感想 编辑:程序博客网 时间:2024/05/29 16:58

目录

一 、SVN三大指令(检提更)
二、忽略功能
三、版本回退
四、版本冲突
五、配置多仓库与权限控制
六、SVN服务的配置与管理
七、模拟真实的开发环境

一 、SVN三大指令(检提更)

  1. 检出(Checkout)操作
    首先在你的项目目录鼠标右键TortoiseSVN版本库浏览器输出SVN服务器地址:
    svn
    svn://SVN服务器地址 Shop项目(仓库)
    svn
    注: 因为.svn是隐藏文件所以要开启显示隐藏文件的设置
    svn
    如果出现以上.svn隐藏文件夹,代表检出成功。

    检出(Checkout)操作:链接到SVN服务器端 -> 更新服务端数据到本地
    注:Checkout只在第一次链接时操作一次,以后如果进行更新操作请使用Update(更新指令)

  2. 提交(Commit)操作
    ① 提交本地数据到服务器端
    commit
    commit
    commit

  3. 更新(Update)更新操作
    在检出后如果有人传了新文件,就需要用到更新操作
    updata

二、忽略功能

有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表
1. 忽略某个指定的文件
org
2. 忽略某类型文件
org

三、版本回退

有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本.
v
1. 版本回退功能
① 在项目空白处鼠标右键,采用如下图所示操作
v
根据日志进行版本回退
这里写图片描述
根据日志信息选择要回退的状态,效果如下图所示
这里写图片描述

四、版本冲突

在实际项目开发中,如果两个人同时修改某个文件就会产生版本冲突问题。
1. 模拟版本起因
这里写图片描述
模拟以上过程,出现如下错误提示:
这里写图片描述
3. 解决之道
1)合理分配项目开发时间
旺财 上午开发
小强 下午开发
2)合理分配项目开发模块
旺财 购物车模块
小强 文章模块
3)通过SVN解决版本冲突问题
① 更新服务器端数据到本地
这里写图片描述
index.php :整合后的index.php文件
index.php.mine :小强修改后的index.php文件
index.php.r6 :09:00更新时的index.php(起始状态)
index.php.r7 :旺财修改后的index.php文件
② 删除除index.php以外的其他三个文件
③ 修改整合index.php冲突文件
④ 重新提交数据到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文件:认证文件
    标识当前svn系统中某个仓库具有哪些用户以及相应的密码
    默认情况下,以上两个文件都是禁用的,如需要使用,首先要开启以上两个文件
    svnserve.conf 配置文件

    开启步骤如下:
    ① 注释匿名用户的可读写权限
    这里写图片描述
    ② 开启认证文件与授权文件
    这里写图片描述
    ③ 编写认证文件定义相关用户名与密码
    这里写图片描述
    ④ 编写授权文件
    这里写图片描述
    这里写图片描述
    ⑤ 测试
    这里写图片描述

六、SVN服务的配置与管理

  1. 配置自启动服务
    sc create SVNService binpath= “D:\subversion\bin\svnserve.exe –service -r D:/svnroot” start= auto
    sc create 服务名称 binpath=空格”svnserve.exe –service –r D:/svn/WebApp” start=空格auto
    创建系统服务,服务名SVNService
    ① 打开运行,输入cmd指令,打开DOS环境(请使用超级管理员运行)
    ② 输入一下指令
    这里写图片描述
    ③ 查看系统服务
    控制面板管理工具服务
    这里写图片描述
    这里写图片描述
    如果运行成功代表开启SVN监管服务。

  2. 创建批处理文件
    启动服务 net start 服务名称
    停止服务 net stop 服务名称
    删除服务 sc delete 服务名称
    可创建.bat文件来快速执行
    这里写图片描述

七、模拟真实的开发环境

  1. SVN工作流程
    这里写图片描述
  2. 钩子程序
    所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改。
    默认情况下,钩子的子目录(版本仓库/hooks/)中包含各种版本库钩子模板。
    这里写图片描述
    post-commit.tmpl :事务完成后所触发的钩子程序
    钩子程序默认情况可以采用批处理指令或Shell指令来进行编写
  3. 通过批处理指令编写钩子程序
    ① 指令svn服务端工作目录
    设置服务器端SVN路径
    SET SVN=”D:\svn\bin\svn.exe“
    ② 指定Web服务器工作目录
    设置服务器端项目运行目录
    SET DIR=”D:\server\apache\htdocs\shop”
    ③ 通过update指令实时更新数据到DIR目录中
    SVN update %DIR%

  4. 具体使用步骤
    第一步:复制post-commit.tmpl为post-commit.bat文件
    第二步:填入相关批处理指令
    这里写图片描述
    第三步:在apache目录创建Shop项目并更新SVN服务端数据到本地
    第四步:更新文件到SVN服务器端,可以在Shop目录实时获取到最新数据
    第五步:可以通过虚拟主机形式直接访问更新文件
    这里写图片描述

原创粉丝点击