首页 > 其他 > 详细

SVN版本控制软件的使用

时间:2020-09-02 19:34:56      阅读:50      评论:0      收藏:0      [点我收藏+]

一、SVN概述

1、为什么需要SVN版本控制软件?

  1. 协作开发
  2. 远程开发
  3. 版本回退

2、解决方案

  1. SCM:软件配置管理 对软件源代码进行控制和管理
  2. CVS:元老级产品
  3. VSS:入门级产品
  4. ClearCase:IBM公司提供技术支持
  5. SVN:主流产品

3、什么是SVN?

  1. SVN全称SubVersion
  2. SVN是近几年兴起的版本管理工具,是CVS的接班人

4、特点

  1. 操作简单,入门容易
  2. 支持跨平台操作(Windows,Linux,MacOS)
  3. 支持版本回退

5、获取SVN软件

属于C/S结构软件(客户端/服务器端)

  1. server端
  2. client端

二、SVN软件安装

1、对SVN服务器的操作

  1. checkout(检出)
  2. update(更新)
  3. commit(提交/上传)

2、服务器软件安装(VisualSVN)

  1. 安装 https://www.visualsvn.com/downloads/

  2. 配置

    1. 创建一个项目

      • 首先在SVN服务端创建一个公有目录WebApp做为项目目录

      • 在WebApp目录下创建Shop文件夹,做为Shop(版本仓库)

      • 创建版本仓库,基本语法:svnadmin create Shop文件夹路径

        技术分享图片

    2. 进行服务端监管

      SVN -->svn://localhost 或(IP地址)访问到相关数据仓库

      语法:svnserve -d(后台运行) -r(监管目录) 版本仓库路径

      通过以上指令,svn://localhost 或(IP地址)就可以直接指向Shop版本仓库。

    3. 权限控制

      默认情况下,SVN服务器不允许匿名用户上传文件到服务器,所以必须更改相关项目下的配置文件

      技术分享图片

3、客户端软件安装

  1. 安装 https://Totortoisesvn.net/downloads.html

  2. 使用客户端软件连接SVN服务器

    右键 -->Totortoisesvn --> 版本库浏览器 -->输入SVN服务器地址 -->checkout

    如果出现.svn文件代表成功。

三、SVN使用详解

1、SVN三大指令

  1. checkout检出操作

    1. 链接到SVN服务器端

    2. 更新服务端数据到本地

      注:checkout只在第一次链接时操作一次,以后如果进行更新操作使 用update指令。

  2. commit提交操作

    1. 提交本地数据到服务器端

      技术分享图片

      ? 以上由项目经理完成。

  3. update更新操作

    ? 由项目经理对SVN服务端进行更新操作,检查下属成员提交的模块。

2、图标集与忽略功能

  1. 图标集

    1. 常规图标:当客户端文件与服务端文件完全同步时。
    2. 冲突图标:当客户端提交的文件与服务端数据有冲突。
    3. 删除图标:当服务端数据已删除,客户端文件会显示。
    4. 增加图标:当我们编写的文件已添加到提交队列。
    5. 无版本控制图标:当我们编写的文件没有添加到上传队列。
    6. 修改图标:当客户端文件有修改但未提交。
    7. 只读图标:当客户端文件以只读形式存在时。
    8. 锁定图标:当服务端数据已锁定,客户端文件将自动显示。
    9. 忽略图标:客户端文件已忽略,不需要进行提交上传。
  2. 忽略功能

    有些文件不希望上传至SVN服务器,应该将该文件或该类型的文件添加到忽略列表。

    1. 忽略某个指定文件

      技术分享图片

    2. 忽略某一类型文件

      技术分享图片

3、版本回退

  1. 原理

    SVN相对与传统存储方式,使用的是差异存储。

  2. 功能

    技术分享图片

    技术分享图片技术分享图片

    通过日志,根据版本号进行回退。

4、版本冲突

  1. 什么是版本冲突?

    在实际的开发中,如果两个人同时修改某个文件就会产生版本冲突问题。

  2. 实列

    当提交时产生如下:

    技术分享图片

  3. 解决方案

    1. 合理分配项目开发时间

    2. 合理分配项目开发模块

    3. 通过SVN解决版本冲突问题

      1. 更新服务端数据到本地

        技术分享图片

      2. 删除除index.php以外的其它三个文件

      3. 修改整合index.php冲突文件

      4. 重新提交到服务器端

5、配置多仓库与权限控制

  1. 配置多仓库

    在实际开发中,会同时开发多个项目,如何进行多项目监管?

    通过监管项目的上级目录来监管所有仓库。

    svnserve -d -r E:/SVN/WebApp

    访问具体项目

    svn://localhost/Shop

  2. 权限控制

    要使用权限控制功能,要先开启权限控制

    在每个仓库中都有一个conf文件夹,里有三个文件。

    技术分享图片

    开启步骤:

    1. 注释掉匿名用户的可读可写权限

    2. 开启认证文件和授权文件

    3. 编写认证文件,定义相关用户名和密码

      技术分享图片

    4. 编写授权文件

      技术分享图片
    5. 测试

6、SVN服务的配置与管理

  1. 配置自启动服务

    sc create SVNService binpath="D:\subversion\bin\svnserve.exe --service -r D:/svnroot" start = auto

    sc create 服务名称 binpath=空格"svnserve.exe --service -r E:/SVN/WebApp" start=空格 auto

    1. 创建系统服务,服务名SVNService
    2. 在控制面板-管理工具-服务找到SVNserver
    3. 运行成功,svn监管服务开发成功
  2. 使用批处理文件来停止和开启管理器

    1. 启动服务 net start 服务名称
    2. 停止服务 net stop 服务名称
    3. 删除服务 sc delete 服务名称
    4. 封装成为.bat封装就可以减少很多工作量

7、模拟真实开发环境

  1. 钩子程序

    与一些版本库事件触发的程序,例如新修订版本的创建,或末版本属性的修改。

    默认,钩子的子目录(hooks/)中包含各种版本库的钩子模板。

    post-commit.tmpl: 事物完成之后触发的钩子程序

    默认情况用批处理或者Shell指令完成

  2. 通过批处理指令编写钩子程序

    1. 指定SVN服务端工作目录

      设置服务端svn路径

      SET SVN="E:\SVn\bin\svn.exe"

    2. 指定web服务器工作目录

      SET DIR="E:\serve\apache\htdocs\Shop"

    3. 通过update指令实时更新数据到DIR目录中

      SET update %DIR%

  3. 具体流程

    1. 复指post-commit.tmpl为post-commit.bat文件
    2. 填写相关批处理指令
    3. 在apache目录下创建shop项目并更新svn服务端数据1到本地
    4. 更新文件到svn服务器端,可在Shop目录实时获取到最新数据
    5. 可以通过虚拟主机直接访问到更新文件

8、SVN扩展程序

  1. BAE云引擎

    百度应用引擎。使开发者不需要维护任何服务器,只需要简单的上传应用程序,就可以为用户提供服务。

    http://bce.baidu,com

SVN版本控制软件的使用

原文:https://www.cnblogs.com/atspace/p/13603404.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!