SVN--基本原理与使用(超详细)

news2024/11/20 8:36:03

目录

  • 一、SVN概述
  • 二、SVN服务端软件安装
  • 三、SVN服务端配置
  • 四、SVN客户端软件安装与使用
  • 五、SVN三大指令
  • 六、SVN图标集与忽略功能
    • 6.1 图标集
    • 6.2 忽略功能
  • 七、SVN版本回退
  • 八、SVN版本冲突
  • 九、SVN配置多仓库与权限控制
    • 9.1 配置多仓库
    • 9.2 权限控制
  • 十、服务配置与管理
  • 十一、模拟真实开发环境
  • 十二、SVN客户端开启分支

一、SVN概述

1.为什么需要SVN版本控制软件
在这里插入图片描述
  我们想开发一个系统,需要张三,李四、王五三个人进行开发,每个人开发一个系统的某几个模块,我们称作协作开发。他们开发之间进行交流称作远程开发。 最后合并成几个版本,如v1.0 、v2.0。这时候就需要SVN来进行版本管理,主要是三个功能:版本回退,协作开发,远程开发。

2.解决之道
  SCM:(Software configuration management)软件配置管理,所谓的软件配置管理实际就是对软件源代码进行控制与管理
CVS:元老级产品
VSS:入门级产品
ClearCase:IBM公司提供技术支持
SVN:主流产品

3.什么是SVN
  SVN的全程SubVersion
  SVN是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数都使用SVN作为代码版本管理软件

  特点:操作简单,入门容易
  支持跨平台操作(window、linux,MacOS)
  支持版本回退功能

4.获取SVN软件
  属于C/S结构软件(客户端与服务器端)
服务端软件:VisualSVN
网址:http://www.visualsvn.com/
客户端软件:TortoiseSVN
网址:http://tortoisesvn.net/downloads

二、SVN服务端软件安装

1、SVN工作流程
在这里插入图片描述
2、服务器端软件安装(VisualSVN)
  服务端软件存储于软件/服务器端
在这里插入图片描述
1)双击服务端软件安装
在这里插入图片描述
2)下一步,继续
在这里插入图片描述
3)下一步,继续

在这里插入图片描述
4)下一步,继续
在这里插入图片描述
Location:软件的安装位置,注意不要出现中文、空格或特殊字符。
Repositories:默认版本仓库位置,自己选择。
Server Port:端口号,443 或者 8443 都可以。
Backups:备份文件保存路径。

在这里插入图片描述
不打钩,点击Next进入下一步:

5)下一步,继续,安全完成

三、SVN服务端配置

1、创建一个项目
① 首先在SVN服务器端创建一个公有目录WebApp做为项目目录
② 在WebApp目录下创建Shop文件夹,做为Shop(版本仓库)

在这里插入图片描述
③ 创建版本仓库,DOS(Disk Operating System,磁盘操作系统)环境基本语法:
  svnadmin create Shop 文件夹路径(Shop仓库)
  如果Shop仓库配置成功,那么Shop文件夹会显示以下目录结构
在这里插入图片描述
  如果Shop仓库配置成功,那么Shop文件夹会显示以下目录结构
在这里插入图片描述
2、进行服务端监管
  Apache-> http://localhost或(ip地址)访问到htdocs目录下的相关文件(监管)
  SVN-> svn://localhost或(ip地址)访问到相关数据仓库(如Shop仓库)
基本语法:
svnserve -d(后台运行) -r(监管目录) 版本仓库路径

svnserve -d -r E:/SVN/WebApp/Shop

如下图所示:
在这里插入图片描述
通过以上指令,我们的svn://localhost或ip地址就可以直接指向Shop版本仓库
3、权限控制
默认情况下,SVN服务器是不允许匿名用户上传文件到服务器端的,所以必须更改系统相关配置文件
在这里插入图片描述
在这里插入图片描述
更改箭头指向的代码,去除前面的空格以及#号,更改其值为write(可读写)

四、SVN客户端软件安装与使用

1、获取软件安装包

2、确认操作系统位数
32位操作系统
64位操作系统
  如何确认操作系统位数呢?可以在计算机图标上鼠标右键->属性
  通过以上分析可知,我们需要安装64位客户端软件。
3、客户端软件安装步骤
① 双击软件运行(TortoiseSVN)
在这里插入图片描述
② 同意许可协议,下一步:
在这里插入图片描述

③ 选择默认安装即可,下一步:
在这里插入图片描述
④ 下一步,Install,系统将会自动安装SVN软件,单击Finish即可。
注:在TortoiseSVN客户端软件安装完毕后,请一定要重启计算机,否则SVN图标是无法显示的
  如果我们鼠标右键出现如下两个图标,代表我们已经安装成功!
在这里插入图片描述
⑤ 安装汉化包
  双击运行安装语言包,系统将会自动寻找之前TortoiseSVN软件安装目录,并进行自动安装,安装完成后可以进行如下设置:
在这里插入图片描述
⑥ 使用客户端软件连接SVN服务器(Checkout检出)
  首先在你的项目目录鼠标右键->TortoiseSVN->版本库浏览器->输出SVN服务器地址:
在这里插入图片描述
  svn://SVN服务器地址-> Shop项目(仓库)
在这里插入图片描述
  显示隐藏文件

在这里插入图片描述
  如果出现以上.svn隐藏文件夹,代表检出成功。

五、SVN三大指令

SVN中的svn add相当于git中的 git add操作
SVN中的svn checkout相当于git中的 git clone操作
SVN中的svn commit相当于git中的 git commit操作
SVN中的svn update相当于git中的 git pull操作 其中git pull相当于git fetch+git merge
git中还有push操作,表示将本地数据推送到远程仓库。可以类似相当于 svn的commit+update
1、回顾SVN三大指令
1)(Checkout)检出操作:① 链接到SVN服务器端 ② 更新服务端数据到本地
注意:Checkout只在第一次链接时操作一次,以后如果进行更新操作请使用Update(更新指令)
2)(Commit)提交操作:① 提交本地数据到服务器端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  以上工作大部分是由管理员完成的,那么如果新来一个程序员(李四),他需要做哪些操作呢?
3)检出操作,效果如下:
在这里插入图片描述
4)Commit(提交),效果如下:

在这里插入图片描述
  以上指令通常是在模块开发完毕后上传
5)项目经理(Update更新操作)
在这里插入图片描述
单击SVN更新操作即可

六、SVN图标集与忽略功能

6.1 图标集

1)常规图标

在这里插入图片描述
含义:当客户端文件与服务器端文件完全同步时,系统会显示以上图标
2)冲突图标

在这里插入图片描述
含义:当客户端提交的文件与服务器端数据有冲突,系统会显示以上图标
3)删除图标
在这里插入图片描述

含义:当服务端数据已删除,那么客户端该文件将显示以上图标
4)增加图标
在这里插入图片描述

含义:当我们编写文档已添加到提交队列,那么系统将自动显示以上图标
5)无版本控制图标
在这里插入图片描述
含义:当我们编写的文件没有添加到上传队列,系统将自动显示以上图标
6)修改图标
在这里插入图片描述
含义:当客户端文件有修改但未提交,此时将自动显示以上图标

7)只读图标
在这里插入图片描述
含义:当客户端文件以只读形式存在时,将自动显示以上图标

8)锁定图标
在这里插入图片描述
含义:当服务端数据已锁定,那么客户端文件将自动显示以上图标

9)忽略图标

在这里插入图片描述
含义:客户端文件已忽略,不需要进行提交上传,那么将自动显示以上图标

6.2 忽略功能

有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表
1)忽略某个指定的文件
在这里插入图片描述
其中UML表示忽略当前文件,UML(recurisely)表示忽略递归的子目录

2)忽略某类型文件
在这里插入图片描述
其中*表示通配符,包含所有.xlsx的文件都将被忽略

七、SVN版本回退

1、什么是版本回退
有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。
在这里插入图片描述
2、版本回退功能
① 在项目空白处鼠标右键,采用如下图所示操作

在这里插入图片描述
  选择更新版本至

  然后再根据日志进行版本回退

在这里插入图片描述
  根据日志信息选择要回退的状态,效果如下图所示

在这里插入图片描述
版本回退之后发现,之前删除的文件就被恢复出来了

八、SVN版本冲突

1、什么是版本冲突
在实际项目开发中,如果两个人同时修改某个文件就会产生版本冲突问题。
2、模拟版本冲突
在这里插入图片描述
  模拟以上过程,出现如下错误提示:
在这里插入图片描述
3、解决之道
1)合理分配项目开发时间
旺财 上午开发
小强 下午开发

2)合理分配项目开发模块
旺财 购物车模块
小强 文章模块

3)通过SVN解决版本冲突问题
① 更新服务器端数据到本地

在这里插入图片描述
index.php :整合后的index.php文件
index.php.mine :小强修改后的index.php文件
index.php.r3 :09:00更新时的index.php(起始状态)
index.php.r4 :旺财修改后的index.php文件

② 删除除index.php以外的其他三个文件
③ 修改整合index.php冲突文件
④ 重新提交数据到SVN服务器端,即可解决版本冲突问题

九、SVN配置多仓库与权限控制

在开发过程中,通常一个项目就是一个仓库

9.1 配置多仓库

  在实际项目开发中,我们可能会同时开发多个项目,那么我们如何进行多项目监管呢?
  通过svnserve进行仓库监管,但是监管指令只能监管某一个文件夹,而不能同时监管多个仓库。
  答:可以通过监管WebApp总目录来达到监管所有仓库的目的
svnserve -d(后台运行) -r(监管目录) WebApp(项目总目录)
① 打开DOS窗口,输入如下指令

svnserve -d -r E:SVN/WebApp

svn://localhost或ip地址来访问D:/svn/WebApp目录
如果需要访问Shop项目、Wechat项目
Shop项目:svn://localhost/Shop
Wechat项目:svn://localhost/Wechat

9.2 权限控制

  如果要使用权限控制有一个前提:必须首先开启权限功能
  在每一个仓库中都有一个conf文件夹,里面有三个文件
authz文件:授权文件
告诉哪些用户具有哪些权限
passwd文件:认证文件
标识当前svn系统中某个仓库具有哪些用户以及相应的密码
默认情况下,以上两个文件都是禁用的,如需要使用,首先要开启以上两个文件
svnserve.conf 配置文件
开启步骤如下:
① 注释匿名用户的可读写权限,修改文件svnserve.conf
在这里插入图片描述
② 开启认证文件与授权文件,修改文件svnserve.conf
在这里插入图片描述
③ 编写认证文件定义相关用户名与密码,修改passwd文件
在这里插入图片描述
④ 编写授权文件,修改authz文件
在这里插入图片描述
在这里插入图片描述
⑤ 测试
在commit中进行提交,提交之后就会出现以下情况
在这里插入图片描述
输入admin,admin888超级管理员,即可完成提交

十、服务配置与管理

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环境(请使用超级管理员运行:搜索输入命令提示符,单击右键选择以管理员身份运行)
② 输入一下指令
在这里插入图片描述

③ 查看系统服务
控制面板->管理工具->服务 (在Window11中的位置在控制面版->Window 工具->服务)
在这里插入图片描述
双击运行,启动SVNService服务
在这里插入图片描述
  如果运行成功代表开启SVN监管服务。

2、创建批处理文件
启动服务 net start 服务名称
停止服务 net stop 服务名称
删除服务 sc delete 服务名称
在这里插入图片描述

以上功能在实际项目开发中经常使用,所以可以封装为.bat批处理文件,效果如下:
在这里插入图片描述

十一、模拟真实开发环境

1、SVN工作流程
在这里插入图片描述

2、钩子程序
所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改。
默认情况下,钩子的子目录(版本仓库/hooks/)中包含各种版本库钩子模板。
在这里插入图片描述post-commit.tmpl :事务完成后所触发的钩子程序
钩子程序默认情况可以采用批处理指令或Shell指令来进行编写

3、通过批处理指令编写钩子程序
① 指令svn服务端工作目录
设置服务器端SVN路径
SET SVN=“E:\SVN\yingyongruanjian\bin\svn.exe”
② 指定Web服务器工作目录
设置服务器端项目运行目录
SET DIR=“E:\SVN\apache\shop”
③ 通过update指令实时更新数据到DIR目录中
SVN update %DIR%
④、具体使用步骤
第一步:复制post-commit.tmpl为post-commit.bat文件
第二步:填入相关批处理指令
在这里插入图片描述
第三步:在apache目录创建Shop项目并更新SVN服务端数据到本地
第四步:更新文件到SVN服务器端,可以在Shop目录实时获取到最新数据
第五步:可以通过虚拟主机形式直接访问更新文件

十二、SVN客户端开启分支

BAE地址: http://bce.baidu.com/

1.首先关联仓库, 右键 — 点击 ’ SVN Checkout…’
在这里插入图片描述
2.在项目上点击右键,在TortoiseSVN菜单中选择Branch/Tag;

3.在To path输入框中输入新建分支的路径,一般是:/branches/分支名,也就是相当于分支保存的路径名;
4.在下面选择HEAD revision in the repository,为当前SVN中trunk目录下最新的代码建立分支,如果需要为制定的revision建立分支,可以进行选择
5.点击OK分支建立完成

在这里插入图片描述
6.打开branches目录,发现目录依然为空,没有刚才建立的分支,这是因为分支建立的操作是在服务器端完成的,当需要编辑分支时,在branches目录点击Update,刚才建立的分支就会下载下来。

分支创建成功后,远程仓库可以查看到分支目录,本地仓库(branches)中不生成新的目录,需要 Update 下来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1629135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVASCRIPT+PHP+GB2312字库文件实现浏览器LED滚动效果

一、效果 二、源码 1、test_led.html <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>MATRIX LED</title> <script src"https://cdn.staticfile.net/jquery/1.10.2/jquery.min.js"></script…

渗透攻击思考题

目录 问题一&#xff1a; 存储过程&#xff1a; 密文存储&#xff1a; 问题二&#xff1a; 问题三&#xff1a; 问题四&#xff1a; LM Hash的加密: NTLM Hash 的加密&#xff1a; 问题一&#xff1a; windows登录的明文密码&#xff0c;存储过程是怎么样的&#xff0…

数据聚类:Mean-Shift和EM算法

目录 1. 高斯混合分布2. Mean-Shift算法3. EM算法4. 数据聚类5. 源码地址 1. 高斯混合分布 在高斯混合分布中&#xff0c;我们假设数据是由多个高斯分布组合而成的。每个高斯分布被称为一个“成分”&#xff08;component&#xff09;&#xff0c;这些成分通过加权和的方式来构…

mysql-connector-java和spring-boot-starter-jdbc和mybatis-spring-boot-start

mysql-connector-java和spring-boot-starter-jdbc和mybatis-spring-boot-start JDBC是什么意思&#xff1f; JDBC是使用java语言操作mysql数据库的规范&#xff0c;java语言必须按照这个规范写才可以操作mysql数据库。 mysql-connector-java 在最开始的时候 程序中是不允许…

深入解析AI绘画算法:从GANs到VAEs

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

蛋糕购物商城

蛋糕购物商城 运行前附加数据库.mdf&#xff08;或使用sql生成数据库&#xff09; 登陆账号&#xff1a;admin 密码&#xff1a;123456 修改专辑价格时去掉&#xffe5;以及上传专辑图片 c#_asp.net 蛋糕购物商城 网上商城 三层架构 在线购物网站&#xff0c;电子商务系统 …

Linux——终端

一、终端 1、终端是什么 终端最初是指终端设备&#xff08;Terminal&#xff09;&#xff0c;它是一种用户与计算机系统进行交互的硬件设备。在早期的计算机系统中&#xff0c;终端通常是一台带有键盘和显示器的电脑&#xff0c;用户通过它输入命令&#xff0c;计算机在执行命…

redisson分布式锁的单机版应用

package com.redis;/*** author linn* date 2024年04月23日 15:31*/ import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.context.annotation.Bean; import org.springframework.context.…

SpringBoot 3.2.5 引入Swagger(OpenApi)

SpringBoot 3.2.5 引入Swagger&#xff08;OpenApi&#xff09; pom文件配置文件启动类Controller 层ApiFox题外话 springdoc-openapi 和 swagger 都可以用&#xff0c;用其中一个就行&#xff0c;不用两个都引入。 这里简单记录以下springdoc-openapi。 springdoc-openapi(J…

【AI相关】模型相关技术名词

目录 过拟合和欠拟合 1.过拟合 2.欠拟合 特征清洗、数据变换、训练集、验证集和测试集 1.特征清洗 2.数据变换 3.训练集 4.验证集 5.测试集 跨时间测试和回溯测试 1.跨时间测试&#xff08;OOT 测试&#xff09; 2.回溯测试 联合建模与联邦学习 1.联合建模 2.联…

用友政务财务系统FileDownload接口存在任意文件读取漏洞

声明&#xff1a; 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 简介 用友政务财务系统是由用友软件开发的一款针对政府机…

OPPO手机支持深度测试+免深度测试解锁BL+ROOT权限机型整理-2024年3月更新

绿厂OPPO手机线上线下卖的都很不错&#xff0c;目前市场份额十分巨大&#xff0c;用户自然也非常多&#xff0c;而近期ROM乐园后台受到很多关于OPPO手机的私信&#xff0c;咨询哪些机型支持解锁BL&#xff0c;ROOT刷机&#xff0c;今天ROM乐园正式盘点当前市场上可以解BL刷root…

树莓派4-通过IIC实现图片循环播放

一、环境 1、树莓派4&#xff1b; 2、串口连接电脑&#xff1b; 3、树莓派由杜邦线连接0.96寸OLED1306协议 4、树莓派能够联网&#xff0c;便于安装环境。离线情况也可以安装&#xff0c;相对麻烦&#xff1b; 二、目标 1、树莓派可以开启IIC并识别已连接的IIC&#xff1b; …

机器人-轨迹规划

旋转矩阵 旋转矩阵--R--一个3*3的矩阵&#xff0c;其每列的值时B坐标系在A坐标系上的投影值。 代表B坐标系相对于A坐标系的姿态。 旋转矩阵的转置矩阵 其实A相对于B的旋转矩阵就相当于把B的列放到行上就行。 视频 &#xff08;将矩阵的行列互换得到的新矩阵称为转置矩阵。&…

4月26日 阶段性学习汇报

1.毕业设计与毕业论文 毕业设计已经弄完&#xff0c;加入了KNN算法&#xff0c;实现了基于四种常见病的判断&#xff0c;毕业论文写完&#xff0c;格式还需要调整&#xff0c;下周一发给指导老师初稿。目前在弄答辩ppt&#xff08;25%&#xff09;。25号26号两天都在参加校运会…

【蓝桥杯省赛真题38】python字符串拼接 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

目录 python字符串拼接 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python字符串拼接 第十三届蓝桥杯青少年组python编程省赛真题 一、题目…

Cadence OrCAD学习笔记(2)OrCAD原理图

最近换份工作主要用到Cadence&#xff0c;之前都是用AD居多&#xff0c;所以现在也开始记录下Cadence学习过程&#xff0c;方便后面复习。 参考教程&#xff1a; OrCAD视频教程第2期&#xff1a;10分钟学会OrCAD原理图_哔哩哔哩_bilibili 本期主要介绍原理图中的基本操作&…

ZooKeeper 搭建详细步骤之二(伪集群模式)

ZooKeeper 搭建详细步骤之一&#xff08;单机模式&#xff09; ZooKeeper 及相关概念简介 伪集群搭建 ZooKeeper 伪集群是指在一个单一的物理或虚拟机环境中模拟出一个由多个 ZooKeeper 节点构成的集群。尽管这些节点实际上运行在同一台机器上&#xff0c;但它们通过配置不同的…

【学习笔记二十八】EWM和QM集成的后台配置和前台展示

一、EWM和QM集成概述 SAP EWM(扩展仓库管理)和QM(质量管理)的集成是SAP系统中一个重要的特性,它允许企业在仓库管理过程中实现质量控制和检验流程的自动化。以下是关于EWM和QM集成的一些关键点概述: 集成优势:通过集成,企业可以确保仓库中的物料在收货、存储、…

flutter笔记-主要控件及布局

文章目录 1. 富文本实例2. Image2.1 本地图片2.2 网络图片 笔记3. 布局4. 滑动相关view4.1 GridView类似九宫格view4.2 ListView 关于widget的生命周期的相关知识这里就不做介绍&#xff0c;和很多语言类似&#xff1b; 1. 富文本实例 Dart中使用richtext&#xff0c;示例如下…