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

目录

  • 一、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中还有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.rhkb.cn/news/314531.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新建云仓库

1.GitHub新建云仓库: LICENSE:开源许可证;README.md:仓库说明文件;开源项目;cocoaPodsName.podspec: CocoaPods项目的属性描述文件。 2.Coding新建云仓库: 备注: Coding新建项目:

每日一题(力扣45):跳跃游戏2--贪心

由于题目已经告诉了我们一定可以跳到,所以我们只需去考虑前进最快的方法。即 判断当前下一步能跳的各个位置中,哪个能带你去去向最远的地方(why? 因为其他位置所能提供的最大范围都没最远那个大,所以最远的那个已经可以…

The Log-Structured Merge-Tree (LSM-Tree) 论文阅读笔记

原论文:The Log-Structured Merge-Tree (LSM-Tree) LSM-Tree的简介和关键技术要点 LSM-Tree(Log-Structured Merge-Tree)是一种为高吞吐量读写操作优化的数据结构,特别适用于写入密集型的应用场景。它由Patrick O’Neil等人开发…

Vue 组件分类、局部注册和全局注册

文章目录 背景知识组件分类安装 vue-cli示例设置组件局部注册设置组件全局注册 背景知识 开发 Vue 的两种方式: 核心包传统开发模式:基于 html / css / js 文件,直接引入核心包,开发 Vue。工程化开发模式:基于构建工…

国产麒麟系统下打包electron+vue项目(AppImage、deb)

需要用到的一些依赖包、安装包以及更详细的打包方法word以及麒麟官网给出的文档都已放网盘,链接在文章最后!!!!!!!!!!!!&a…

13 c++版本的五子棋

前言 呵呵 这大概是 大学里面的 c 五子棋了吧 有一些 面向对象的理解, 但是不多 这里 具体的实现 就不赘述, 仅仅是 发一下代码 以及 具体的使用 然后 貌似 放在 win10 上面执行 还有一些问题, 渲染的, 应该很好调整 五子棋 #include<Windows.h> #include<io…

elaticsearch windows安装

es下载地址 https://www.elastic.co/cn/downloads/elasticsearch https://www.elastic.co/cn/downloads/past-releases#elasticsearch 在这里插入图片描述 下载直接解压&#xff0c;解压后目录 双击bin目录下的elasticsearch.bat开启服务 注意&#xff1a;9300 端口为 Elas…

阶跃星辰:探索智能科技的星辰大海

引言 在当今快速发展的科技时代&#xff0c;人工智能已经成为推动社会进步的重要力量。阶跃星辰&#xff0c;正是在这一背景下诞生的。 阶跃星辰是一家专注于通用人工智能探索的公司&#xff0c;成立于2023年4月。该公司的创始团队由一群对人工智能充满热情和渴望的人组成&am…

半导体行业的隐形翅膀:国产RFID技术突破封锁,助力生产

半导体行业的隐形翅膀&#xff1a;国产RFID技术突破封锁&#xff0c;助力生产 RFID技术&#xff0c;简单来说&#xff0c;就是一种自动识别技术&#xff0c;通过无线电波实现对标签信息的读取和写入。而这些标签&#xff0c;就像给物品贴上的小标签&#xff0c;上面存储着它们…

《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-05-SOA设计模式

文章目录 1. 服务注册表模式1.1 服务注册表1.2 SOA治理功能1.3 注册表中的配置文件 2. 企业服务总线&#xff08;ESB&#xff09;模式3. Synchro ESB3. 微服务模式3.1 概述3.2 微服务架构模式方案3.2.1 聚合器微服务1&#xff09;概述2&#xff09;几种特殊的聚合微服务 3.2.2 …

C++解方程组的库

解决多元多次方程组的问题&#xff0c;你可以考虑以下几个C库&#xff1a; Eigen: Eigen库是一个高性能的C模板库&#xff0c;用于线性代数运算。它提供了强大的矩阵运算功能&#xff0c;可以用来解多元一次方程组。对于多次方程组&#xff0c;你可能需要结合Eigen和一些数值优…

javascript(第三篇)原型、原型链、继承问题,使用 es5、es6实现继承,一网打尽所有面试题

没错这是一道【去哪儿】的面试题目&#xff0c;手写一个 es5 的继承&#xff0c;我又没有回答上来&#xff0c;很惭愧&#xff0c;我就只知道 es5 中可以使用原型链实现继承&#xff0c;但是代码一行也写不出来。 关于 js 的继承&#xff0c;是在面试中除了【 this 指针、命名提…

计算机网络-IS-IS路由计算

前面已经学习了建立IS-IS邻接关系和同步LSDB&#xff0c;然后基于此路由器会进行路由计算。 一、路由计算 因为IS-IS路由器有不同的级别&#xff0c;只维护自身级别的LSDB&#xff0c;因此就是Level-1只有区域内的路由信息&#xff0c;Level-2有Level-2的路由信息&#xff0c;L…

开源协议与商业许可:选择与遵循

文章目录 一、开源协议1.1 MIT许可证&#xff08;MIT License&#xff09;1.2 BSD许可证&#xff08;BSD License&#xff09;1.3 Apache许可证 2.0&#xff08;Apache License 2.0&#xff09;1.4 GNU宽松通用公共许可证&#xff08;GNU Lesser General Public License&#x…

C++笔试强训day7

目录 1.字符串中找出连续最长的数字串 2.岛屿数量 3.拼三角 1.字符串中找出连续最长的数字串 链接 我的思路很简洁&#xff0c;就是双指针遍历&#xff0c;然后不断更新左位置left和右位置right和长度len。 然后我写代码的时候代码思路没跟上原本思路&#xff0c;直接把所有…

局部多项式近似与 AMPM 算法

kappa3; %已在您的代码中定义% 定义窗口大小 windowSize (2*kappa1);% 初始化梯度估计值 [rows, cols] size(wrappedPhase); phi_y zeros(rows, cols); phi_x zeros(rows, cols);% 遍历每个窗口 for m 1kappa:rows-kappafor n 1kappa:cols-kappa% 提取局部窗口Z_mn wrap…

保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识

1.简介 有的小伙伴或者童鞋们可能会好奇地问&#xff0c;不是讲解和分享抓包工具了怎么这里开始讲解HTTP和HTTPS协议了。这是因为你对HTTP协议越了解&#xff0c;你就能越掌握Fiddler的使用方法&#xff0c;反过来你越使用Fiddler&#xff0c;就越能帮助你了解HTTP协议。 Fid…

hive启动beeline报错

问题一在zpark启动集群报错 出现上面的问题执行以下代码 chmod 777 /opt/apps/hadoop-3.2.1/logs 问题二启动beeline报错 执行 cd /opt/apps/hadoop-3.2.1 bin/hadoop dfsadmin -safemode leave 问题三执行查询语句报错 执行 set hive.exec.mode.local.autotrue;

【算法基础实验】图论-构建无向图

构建无向图 前提 JAVA实验环境 理论 无向图的数据结构为邻接表数组&#xff0c;每个数组中保存一个Bag抽象数据类型&#xff08;Bag类型需要专门讲解&#xff09; 实验数据 我们的实验数据是13个节点和13条边组成的无向图&#xff0c;由一个txt文件来保存&#xff0c;本…

【Java】全套云HIS源码包含EMR、LIS(多医院、卫生机构使用)

云HIS系统简介 SaaS模式Java版云HIS系统源码&#xff0c;在公立二甲医院应用三年&#xff0c;经过多年持续优化和打磨&#xff0c;系统运行稳定、功能齐全&#xff0c;界面布局合理、操作简便。 1、融合B/S版电子病历系统&#xff0c;支持电子病历四级&#xff0c;HIS与电子病…