Windows下版本控制器(SVN)-TortoiseSVN使用

news2024/11/15 13:37:17

在这里插入图片描述

文章目录

  • 基础知识-Windows下版本控制器(SVN)
      • 3.4 TortoiseSVN使用
        • 3.4.1 SVN检出(SVN Checkout)
        • 3.4.2 SVN更新(SVN Update)
        • 3.4.3 **SVN**提交(SVN Commit)
        • 3.4.4 **SVN**还原(SVN Revert)
        • 3.4.5 解决文件冲突
        • 3.4.6 授权访问
        • 3.4.7 **显示日志(Show log)**
        • 3.4.8 **版本库浏览(Repo-browser)**
        • 3.4.9 TortoiseSVN更换或重置登录用户
        • 3.4.10 如何修改提交仓库地址
        • 3.4.11 TortoiseSVN中创建版本库和导入区别
        • 3.4.12 合并分支代码

基础知识-Windows下版本控制器(SVN)

3.4 TortoiseSVN使用

3.4.1 SVN检出(SVN Checkout)

在这里插入图片描述
在这里插入图片描述

3.4.2 SVN更新(SVN Update)

在这里插入图片描述
在这里插入图片描述

3.4.3 SVN提交(SVN Commit)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.4 SVN还原(SVN Revert)

指代项目版本回滚之前的某个版本

在这里插入图片描述
在这里插入图片描述
点击显示日志可以查看版本信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.5 解决文件冲突

在这里插入图片描述

选中冲突文件,鼠标右键选择“编辑冲突”

在这里插入图片描述

在下方进行复制编辑,最后点击“保存”即可。

在这里插入图片描述

在这里插入图片描述

到现在文件状态就已经变了

在这里插入图片描述

3.4.6 授权访问

总结:

  • 如果是匿名访问(就是不用输入用户名+密码的访问方式),请只开启anon-access = write
  • 如果授权访问,请先设置anon-access = none,然后打开3个:auth-access = write、password-db = passwd、authz-db = authz

注意:必须设置anon-access = none,否则会代码提交报错失败。

①要设置授权访问就需要创建用户,并为用户设定权限

②打开授权访问的配置

[1]打开 D:\DevRepository\Subversion\CRM\conf\svnserve.conf (svnserve.conf文件: 核心配置文件)

在这里插入图片描述

在这里插入图片描述

[2]将第 19 行 anon-access = write 注释掉:# anon-access = write

表明该版本库不接受匿名访问

[3]将第 20 行# auth-access = write 注释打开:auth-access = write

表明该版本库使用授权访问

[4]将第 27 行注释打开:password-db = passwd

表明使用同目录下的 passwd 文件保存用户信息

[5]将第 36 行注释打开:authz-db = authz (authz文件: 权限认证相关)

[6]打开 passwd 文件创建用户 (passwd文件: 用户密码相关)

tom = 123456
jerry = 123456
nick = 123456
tester = 123456

在这里插入图片描述

[7]打开 authz 文件:#后面注释的是例子

在这里插入图片描述

[/]表示该仓库下的所有路径

[CRM:/oneLayer/1]中CRM为仓库名,表示该仓库下的“/oneLayer/1”路径

@developer= rw 表示developer该组的所有成员访问权限为可读可写,设置组权限需要用@符号表示,而直接设置用户权限则不需要添加@

[CRM:/oneLayer/1]

jerry = rw,表示jerry 用户只拥有CRM仓库下/oneLayer/1路径下的所有读写权限访问权限,而/oneLayer/1前面的路径则没有访问权限

*= 因为后面没有写访问权限,所以表示其他人没有访问权限

<1>创建用户组

[groups] 
# harry_and_sally = harry,sally 
# harry_sally_and_joe = harry,sally,&joe 
@developer = rw

<2>指定路径,给用户和用户组授权

# [/foo/bar] 
# harry = rw 
# &joe = r 
# * =屏蔽那些未设定的用户,让它们没有任何权限 
[/]
@developer = rw
tester = r
* =
[CRM:/oneLayer/1]
jerry = rw

[CRM:/oneLayer/2]
nick = rw

<3>权限的继承性:父目录设置的权限,对子目录同样有效——除非子目录进行 了更为具体的设定(这个没验证过,需博主自己验证下)

[/subDir] 
userOther = rw 
* = 

这个例子表示当前版本库下的 subDir 目录只有 userOther 有读写权限,其它用户 无任何权限

模拟登录tom用户,验证能否提交成功。答案是可以提交。

在这里插入图片描述

模拟登录测试用户tester,验证能否提交成功。答案是不可以提交,因为权限不够。

在这里插入图片描述

在这里插入图片描述

做一个小测验,需求:假设我的项目结构如图,假设每一个包含text.txt的文件夹都是一个真实的项目,且存在多层级结构,我现在想实现tom用户具有CRM路径(目前CRM路径就是SVN的某一仓库的根目录)下的所有读写访问权限,而jerry用户只CRM/oneLayer/1路径下的读写权限,而nick用户只有CRM/oneLayer/2路径下的读写权限,而tester测试用户只有读权限没有写权限。

  • 这个项目想模拟的就是新建的tom用户具有管理员权限,jerry和nick用户只有部分路径的访问读写权限,而测试用户只有读没有写的权限。对应的真实场景就是:我自己搭建了SVN,我自己创建管理员账户并授权,但是新建别的用户我想控制权限,让他们只有自己项目的访问权限,而别人的项目没有拉取代码的权限,想演练下如何实现。

在这里插入图片描述

  • 前提说明:目前CRM路径就是SVN的某一仓库的根目录,就是对应auth配置文件中的[/]

  • passwd文件

    tom = 123456
    jerry = 123456
    nick = 123456
    tester = 123456
    
  • auth文件

    [groups]
    # 控制新增用户权限
    [/]
    @developer = rw
    tester = r
    * =
    [CRM:/oneLayer/1]
    jerry = rw
    
    [CRM:/oneLayer/2]
    nick = rw
    
  • 演练场景1,验证tom用户能否checkout下载/CRM/oneLayer/1下的项目oneLayerProject,如图,答案是可以成功下载,说明它拥有/路径下的所有权限。

在这里插入图片描述

  • 演练场景2,验证nick用户能否checkout下载/CRM/oneLayer/2下的项目twoLayerProject,如图,答案是可以成功下载,说明它拥有/oneLayer/2路径下的所有权限。

在这里插入图片描述

  • 演练场景3,验证nick用户能否checkout下载/CRM/oneLayer/1下的项目oneLayerProject,如图,答案是不可以成功下载,说明它没有/oneLayer/1路径下的所有权限。

在这里插入图片描述

3.4.7 显示日志(Show log)

通过此功能可以查到谁,什么时候,对那个目录下的那些文件进行了那些操作,如下图:

在这里插入图片描述
在这里插入图片描述

3.4.8 版本库浏览(Repo-browser)

此功能是用来浏览需要查看的资料库,在本地文件夹下点击右键,选择TortoiseSVNàRepo-browser,在弹出的对话框中输入资料库地址,再输入用户名和密码,就能查看到你需要查看到版本库的内容,在这你还能看到那些文件被谁锁定了,如下图:

在这里插入图片描述

3.4.9 TortoiseSVN更换或重置登录用户

1,打开SVN的settings

在这里插入图片描述

2,找到Saved Data栏,右侧Authentication data项点击清除按钮clear

在这里插入图片描述

3,再次打开SVN,会要求输入username和password

在这里插入图片描述

3.4.10 如何修改提交仓库地址

如果项目提交地址编写不规范,想重新命名提交个新的地址,但是不用IDEA只用TortoiseSVN情况下如何操作

答案:可以打开“版本库浏览器”,在左侧的目录树中进行创建、移动目录即可。

在这里插入图片描述

在这里插入图片描述

3.4.11 TortoiseSVN中创建版本库和导入区别

  • 创建版本库:对于真实的项目,您将在安全的地方设置一个存储库,并使用Subversion服务器对其进行控制。每个项目都需要创建版本库,才会有.svn文件,才能将项目进行SVN管理(实际是相当于创建了个某一种分类类型的仓库,它里面可以存放很多路径的项目,比如版本库叫“CRM仓库”,那么该路径下存储客户关系管理系统相关的项目;如果版本库叫“粮食仓库”,那么该路径下存储粮食管理系统相关的项目)
  • 导入:就是将某些文件导入到已创建版本库中。

3.4.12 合并分支代码

需求:这里为了演练一种场景,我主分支trunk_V01创建一个新的开发分支trunk_V02,然后主分支和新分支一起开发不同通能,最后我要把trunk_V02新分支合并到主分支trunk_V01上,要求是主分支新创建的文件要存在,新分支trunk_V02新创建的文件也要存在,冲突的相同文件名内容解决冲突即可。

说明:主分支trunk_V01里面只有一个文件text.txt文件,内容如图,然后将依照当前主分支创建新分支命名叫trunk_V02

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

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

相关文章

Java项目上线之服务器环境配置篇(二)——Tomcat配置

Java项目上线之服务器环境配置篇&#xff08;二&#xff09;——Tomcat配置 Tomcat的选择&#xff1a; 云服务器tomcat的选择最好与本机项目运行的tomcat版本号一致&#xff0c;避免一些不必要的问题。 配置步骤&#xff1a; 1、首先进入云服务器创建好放置tomcat的文件夹。这…

台灯发光方式哪种好?分享好用侧发光的护眼台灯

台灯发光方式主要是侧发光、直发光方式。个人觉得侧发光的台灯会比较好。 侧发光灯主要利用导光板技术&#xff0c;根据led灯板灯珠的排布以及灯珠的发光角度进行导光板网点设计&#xff0c;使光线通过导光板达到亮度均匀化的效果。 而直发光灯以高亮度led为发光源&#xff0…

手势语言识别模型训练及应用

使用训练集训练模型&#xff0c;使模型能够识别不同手势。 OpenCV-Python环境使用训练集训练模型&#xff0c;使模型能够识别不同手势。系统测试 本项目基于卷积神经网络&#xff0c;通过Python的翻转功能沿垂直轴翻转每个图像&#xff0c;实现手势语言识别的功能。系统流程如图…

FL Studio21最新中文版安装包下载操作教程

FL Studio21是一款非常流行的数字音频工作站(DAW)软件,用于音乐制作、录音、调整和混音。它由Image-Line公司开发,前身叫FruityLoops,后改名为FL Studio。 FL Studio21的主要功能包括: 1. MIDI编序器:用于录入和编辑MIDI音序,控制软件乐器和外部硬件。 2. 虚拟乐器:提供各种模…

matrix部署

一、环境描述 首先matrix是一个去中心化的聊天服务&#xff0c;matrix实现了端对端的加密&#xff0c;这意味着不仅其他人无法查看你的聊天内容&#xff0c;哪怕你更换了一个终端&#xff0c;你也需要私钥才能够查看你的聊天记录。 这是终极的隐私保护方案&#xff0c;因为一旦…

【Python_Matplotlib学习笔记(二)】Matplotlib绘图嵌入PySide2图形界面

Matplotlib绘图嵌入PySide2图形界面 前言正文1、FigureCanvasQTAgg类介绍2、基于FigureCanvasQTAgg类实现Matplotlib绘图嵌入PySide2图形界面3、示例代码及实现效果 前言 在本文中主要介绍 如何基于 FigureCanvasQTAgg 类实现 Matplotlib 绘图嵌入 PySide2 图形界面。 正文 …

全栈工程师的职业前景及就业环境情况说明

本篇文章主要讲解全栈工程师的职业前景和就业趋势。 作者&#xff1a;任聪聪 日期&#xff1a;2023年4月20日 全栈工程师顾名思义就是会一个技术栈领域的所有客户端技术&#xff0c;如web全栈即前后端技术栈都会的工程师&#xff0c;如web、pc、app都会的则也是全栈&#xff08…

电脑清理C盘记录

从30几G扩大到了50G。 进行了虚拟内存的移动。 来自C盘清理最全攻略&#xff0c;用这几招轻松解决&#xff0c;不存在C盘爆红 我就使用系统管理的大小没有更改了&#xff0c;这也方便改回去叭。 可能会出现警告&#xff0c;不用管。 把桌面移动到了D盘。 文件夹桌面右键属性…

初识Android内存优化

一、简介 Android 内存优化是指优化 Android 应用程序的内存使用&#xff0c;以减少可用内存的消耗&#xff0c;提高应用程序的性能和可靠性。Android 内存优化可以通过减少内存使用量&#xff0c;减少对资源的消耗&#xff0c;以及提高内存利用率来实现。 安卓系统对每个应用…

【音视频第16天】详解STUN协议

一个webRTC传输协议搞得自己云里雾里的。现在主动攻克一下。先看看STUN协议。好&#xff0c;我们开始吧 目录 1.讲讲什么是NAT&#xff1f;2.NAT有啥问题&#xff1f;3.四种NAT类型4.STUN Server5.TURN ServerSTUN和TURN的实现&#xff1a;什么是STUN&#xff1f;为什么需要ST…

中台产品经理02:产品经理如何用一套方法搞定复杂业务拆解?

如果你问我作为企业级应用的产品经理日常工作最大的感受是什么&#xff1f;那就是经常会需要面对众多复杂类业务需求。 原因其实很好理解&#xff0c;B端产品通常需要支持更复杂的业务流程&#xff0c;需求也更加个性化和细分。例如&#xff0c;银行业务系统、医院管理系统、物…

JVM中的垃圾回收概念及其基础算法说明

文章目录 一、 垃圾回收概述1、什么是垃圾&#xff1f;2、为什么我们需要GC 二、垃圾回收之判别对象死活1、标记阶段&#xff1a;引用计数算法2、标记阶段&#xff1a;可达性分析算法 二、 finalization 机制三、整理和清除对象1、标记-清除算法&#xff08;Mark-Sweep&#xf…

Selenium安装及环境配置

目录 一、Selenium 简介1. 组件2. 特点 二、安装Selenium✨三、下载对应版本的Chromedriver1.查看Chrome的版本号2.下载驱动 chromedriver和配置3.解压到本地4.复制文件放入python安装目录的Scripts文件夹中5.Selenium启动Chrome 一、Selenium 简介 1. 组件 Selenium IDE&…

【Few Shot数据集】CUB-200-2011 鸟类

文章目录 一、数据下载二、数据介绍3.1 图案示意3.2 标注属性 CUA-200-2011 是CUB-200的拓展&#xff0c;包含了200个鸟类&#xff0c;共11788张图片&#xff0c;每张图片都标注了物体的框、关键点和属性类别&#xff0c;常被用于小样本细粒度图像分类或者检测任务中。 一、数据…

java运动会成绩管理系统dzkf0534程序

借助java编程语言、jsp技术、MySQL数据库和tomcat服务器来完成系统的所有功能&#xff0c;最后进行系统测试&#xff0c;来检测系统的权限和漏洞&#xff0c;从而将系统完善&#xff0c;达到符合标准。 &#xff0e;系统登录&#xff1a;系统登录是用户访问系统的路口&#xff…

数据库基础篇 《4. 运算符》

目录 1. 算术运算符 1&#xff0e;加法与减法运算符 2&#xff0e;乘法与除法运算符 3&#xff0e;求模&#xff08;求余&#xff09;运算符 2. 比较运算符 1&#xff0e;等号运算符 2&#xff0e;安全等于运算符 3&#xff0e;不等于运算符 4. 空运算符 5. 非空运算…

从三室心脏MRI影像检测主动脉瓣病变

Detecting Aortic Valve Pathology from the 3-Chamber Cine Cardiac MRI View 摘要 背景 心脏磁共振(CMR)是量化心脏容量、功能和血流量的金标准。定制的MR脉冲序列定义了对比机制&#xff0c;采集几何形状和定时&#xff0c;可以在CMR期间应用&#xff0c;以实现独特的组织…

进程间通信---管道

进程间通信 概念 进程间通信就是在不同进程之间传播或交换信息数据, 简称IPC&#xff08;Interprocess communication&#xff09;. 意义 数据传输, 资源共享事件通知, 进程控制 本质 让不同的进程看到同一份资源 管道 匿名管道 原理: 匿名管道仅限于本地父子进程之间的…

开放原子训练营(第三季)RT-Thread Nano学习营线下学习心得

前言 目前市面上有很多种RTOS&#xff08;Real-time operating system&#xff0c;实时操作系统&#xff09;&#xff0c;还在犹豫选择学习哪种RTOS的小伙伴&#xff0c;推荐你们学习RT-Thread操作系统&#xff0c;这也是本人最喜欢的一个RTOS&#xff0c;喜欢的原因很简单&am…

[chapter27][PyTorch][Overfitting under fitting]

前言&#xff1a; 机器学习模型性能度量标准之一&#xff1a; 泛化能力 泛化能力强的模型才是好的模型&#xff0c;在评价泛化能力 时候&#xff0c;我们经常遇到过拟合和欠拟合问题 目录&#xff1a; 1&#xff1a; Overfitting 2: underfitting 一 Overfitting refers …