day36_Spring学习笔记_04_SVN

1、SVN

1.一、版本控制

1.1.一、什么版本控制?

  • 版本控制(Revision Control):是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便未来查阅特定版本修订状况的系统。也是一种软体工程技巧,籍以在开发的过程当中,确保由不一样人所编辑的同一档案都获得更新。
  • 为何学习版本控制?硬盘是否坏过。根据经验法则再加上墨菲定理,坏事情每每都发生在最重要的时刻。
  • 经过文档控制(documentation control),能记录任何工程专案内各个模组的改动历程,并为每次改动编上序号。

1.1.二、版本控制软件

  • CVS(Concurrent Versions System)表明协做版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工做。
  • VSS(Visual Source Safe)只能在windows下,做为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理。
  • Git是用于Linux内核开发的版本控制工具。它采用了分布式版本库的方式,没必要服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来讲天然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。
  • SVN(Subversion),是一个开放源代码的版本控制系统,采用了分支管理系统,它的设计目标就是取代CVS。

1.二、SVN的特色

  • 统一的版本号。CVS是对每一个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对全部文件增长到同一个新版本号,即便是提交并不涉及的文件。因此,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
  • 原子提交。一次提交不论是单个仍是多个文件,都是做为一个总体提交的。在这当中发生的意外例如传输中断,不会引发数据库的不完整和数据损坏。
  • 重命名、复制、删除文件等动做都保存在版本历史记录当中。
  • 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不一样之处)
  • 目录也有版本历史。整个目录树能够被移动或者复制,操做很简单,并且可以保留所有版本记录。
  • 分支的开销很是小。
  • 优化过的数据库访问,使得一些操做没必要访问数据库就能够作到。这样减小了不少没必要要的和数据库主机之间的网络流量。
  • 支持元数据(Metadata)管理。每一个目录或文件均可以定义属性(Property),它是一些隐藏的键值对,用户能够自定义属性内容,并且属性和文件内容同样在版本控制范围内。
  • 支持 FSFS 和 Berkeley DB两种资料库格式。
  • 不足:只能设置目录的访问权限,没法设置单个文件的访问权限。

1.三、SVN的体系结构

1.四、安装SVN

  • 版本

    我通常喜欢安装最新版本的软件。
  • 测试安装
  • 检查path系统环境变量

1.五、建立仓库

  • 命令格式:svnadmin create 路径
  • 仓库目录结构
  • 注意:建立仓库时,目录必须是空的,即要新建文件夹

1.六、SVN服务器启动

  • 命令格式:svnserve -d -r 仓库的路径
    -d 后台执行
    -r 版本库的根目录
    SVN服务器启动时,指定“仓库路径”不一样,就会分红多仓库单仓库
  • 多仓库【掌握】

    启动:svnserve -d -r 仓库父目录,表示启动的是多仓库
    例如:svnserve -d -r D:\learn\JavaWeb\repository\svn
    访问:svn://localhost:3690/bbs
  • 单仓库【了解】

    启动:svnserve -d -r 仓库的根,表示启动的是单仓库
    例如:svnserve -d -r D:\learn\JavaWeb\repository\svn\bbs
    访问:svn://localhost:3690
  • 每次启动SVN服务器都要输入不少命令,太麻烦了,有没有解决办法?
  • 有,咱们能够将操做注册成操做系统的“服务”,咱们的电脑开机时SVN服务器就启动了。
    • 一、在“运行”中输入 services.msc 打开“服务”
    • 二、注册“服务”
      前提:必须以管理员身份打开命令提示符。
      命令格式:sc create svn binpath= "D:\learn\JavaWeb\Subversion\Subversion\bin\svnserve.exe --service -r D:\learn\JavaWeb\repository\svn" displayname= "SVN-Service" start= auto depend= Tcpip
    • 三、删除“服务”
      命令格式:sc delete svn
    • 四、将SVN-Service的启动类型设置为`手动`后,就能够手动启动或中止“服务”了

      测试手动开启SVN和手动中止SVN:

1.七、操做【掌握:思想】

1.7.一、checkout

  • 命令格式:svn checkout 服务器地址 下载地址

1.7.二、commit

  • 命令格式:svn commit 资源
    问题1:还没有归入版本控制

    解决办法:使用add子命令,将要提交的文件添加到本地版本库

    再次提交
    问题2:没有编写日志

    解决办法:采用 -m 参数设置日志信息

    问题3:没有权限,认证失败

    解决办法:修改权限,设置匿名访问
    先打开文件:D:\learn\JavaWeb\repository\svn\bbs\conf\svnserve.conf

    再次提交,没有问题了

1.7.三、update

  • 再次更新:
  • 命令格式:svn update

1.八、图形化:TortoiseSVN 安装

  • 安装包文件:
  • 安装成功以后,之后全部的操做都是“右键”
  • 若在TortoiseSVN的简单使用中若出现以下警告,说明SVN服务器是关闭的,须要咱们手动打开SVN服务器(由于咱们设置的是手动启动和关闭SVN服务器):
    警告以下:

    命令格式:net start svn

    解决问题成功截图:

1.九、svn权限

  • 先找到仓库,配置SVN权限须要3个配置文件,位置:D:\learn\JavaWeb\repository\svn\bbs\conf
  • 核心配置文件:svnserve.conf
    关闭匿名访问,开启权限认证

    肯定帐号配置文件位置

    肯定权限认证配置文件位置
  • 帐号配置文件:passwd(一行表示一个帐号,帐号由用户名和密码组成,使用等号分隔)
  • 权限认证配置文件:authz
    配置组,配置格式:组名 = 用户1, 用户2, …

权限认证细节配置css

多仓库
    [bbs:/]         --> 肯定仓库名称。[bbs:/doc]    表示给bbs仓库的doc目录配置权限认证
    @itheima = rw   --> 给itheima组设置权限,取值:read ('r') ,read-write ('rw') ,or no access ('')
    user3 = r       --> 给user3 指定权限
    *=              --> 其余用户没有权限
单仓库
    [/]             --> 表示单仓库的根。[/doc]  表示单仓库中的doc目录

1.十、TortoiseSVN 常见图标

1.十一、myeclipse svn 插件【很重要】

1.11.一、安装插件

  • myeclipse svn 插件位置
  • 若是3个都不能使用,直接换eclipse。
  • 安装方式1:直接复制

eclipse 插件规范示例:数据库

eclipse 目录
  --- features目录
  --- plugins 目录windows

  • 安装方式2:使用link文件

详解以下:服务器

将插件解压到任意目录(不含中文、空格),在MyEclipse\MyEclipse 2017 CI\dropins目录添加一个link文件
    文件名:自定义
    文件扩展名:link
    文件内容:
        path = 插件完整目录,须要指定到eclipse,便可以看到(features、plugins)这两个目录
        例如:
            path = D:\\learn\\Java\\MyEclipse\\MyEclipse 2017 CI\\dropins\\svn\\eclipse  或者
            path = D:/learn/Java/MyEclipse/MyEclipse 2017 CI/dropins/svn/eclipse
  • 安装方式3:在线安装
    在MyEcplise中点击Help --> Install from Site… --> Add… --> Location --> Next 等等
  • 安装成功标志

1.11.二、myeclipse svn插件使用

1.十二、svn 目录规范

  • svn 目录规范
  • trunk ,主线:用于存放程序整个进度
  • branches ,分支,例如:bug修复、特殊功能等
  • tags ,标签(版本),此目录下的内容不能修改
  • 软件开发小图解示例:
相关文章
相关标签/搜索