svn工具使用

news2024/12/23 9:34:10

svn

介绍

  1. 解决之道:

SCM:软件配置管理

所谓的软件配置管理实际就是对软件源代码进行控制与管理

CVS:元老级产品

VSS:入门级产品

ClearCase:IBM 公司提供技术支持

SVN:主流产品

  1. 什么是SVN?
  • SVN 全称SubVersion
  • SVN 是CVS 的接班人

特点:操作简单 入门容易

​ 支持跨平台操作(Window,Linux,MacOS)

​ 支持版本回退

  1. 获取SVN软件

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

服务端软件:visualsvn

https://www.visualsvn.com/server/download/

客户端软件:tortoisesvn

https://tortoisesvn.net/downloads.html

SVN 工作流程:

20211120083802

服务端软件安装

https://www.visualsvn.com/server/download/

20211120084332

20211120084928

安装完成:

20211120085329

SVN 服务端环境配置

创建一个项目:

  • 首先在SVN服务器创建一个公有目录 WebApp 作为项目目录
  • 在WebApp 目录下创建Shop 文件夹 作为 Shop(版本仓库)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dD6Jst5u-1690943278073)(http://qiniu.xiaotao.cloud/QQ%E6%88%AA%E5%9B%BE20211120085940.png)]

  • 创建版本仓库 DOS 环境

    svnadmin create 文件夹路径
    

没有任何提示 则代表创建成功

20211120091448

创建成功

20211120091557

进行服务端监管

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

基本语法:

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

20211120092725

通过以上指令我们的svn://localhost 或(ip地址)就可以直接指向版本仓库

权限控制

默认情况下,SVN 服务器是不允许匿名用户进行上传文件 所有我们必须修改项目相关配置文件

20211120095514

20211120095401

20211120095428

客户端软件安装

https://tortoisesvn.net/downloads.html

安装成功:

20211120100644

汉化包

20211120101153

下载安装

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

Checkout:检出

项目目录右键 -> TortoiseSVN -> 版本库浏览器(Repo-browser)

20211120102018

右键 CheckOut:

20211120110443

20211120102445

OK

20211120102541

查看隐藏目录:

20211120102701

SVN 使用

提交到远程 commit

  • svn 三大指令:

    • Checkout 检出: 连接到SVN 服务器 更新服务器端数据到本地

      注意:Checkout 只在第一次链接是操作使用 后面更新使用 Update

    • commit 提交:提交本地数据到服务器

20211120104812

20211120105231

提交成功

20211120110649

克隆到本地

张三:

新建文件:

同上 Checkout -> Repo-browser

20211120111017

20211120111317

20211120111339

检出成功:

20211120111400

update

20211120112002

提交成功 步骤同上:

20211120112039

项目经理需要看到今天zhang 的工作:

20211120112125

右键 SVN update

20211120112301

SVN 图标集

设置 可以进行图标修改

20211120114909

图标不显示

20211120114350

解决:

Win+R —> regedit —> 找到:HKEY_LOCAL_MACHINE——SOFTWARE——Microsoft——Windows——CurrentVersion——Explorer——ShellIconOverlayIdentifiers

20211120114557

在任务管理器终止 explorer.exe 进程

重新运行即可

图标含义

20211120115038

**绿色对勾:**表示一个新检出的工作复本使用绿色的对勾做重载。表示Subversion状态正常.

**红色叹号:**表示在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。

**黄色叹号:**表示如果在提交的过程中出现了冲突图标变成黄色感叹号。

**灰色对勾:**表示如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。

**黄色小锁:**表示如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。

**红色叉号:**表示这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。

**蓝色加号:**表示加号告诉你有一个文件或是目录已经被计划加入版本控制。

忽略文件

有些文件不希望上传至SVN 服务器 应该将这些文件添加至忽略文件

在要忽略文件上 右键

image-20211120115743112

20211120115922

忽略后提交就不会显示

版本回退

20211120120606

20211120120821

20211120121046

显示日志:

20211120121145

选择对应版本确定即可

版本冲突

在项目开发中 如果两个人同时修改某个文件就会出现版本冲突

20211120121735

20211120122348

li

20211120122526

20211120122615

xiao

20211120122734

当xiao 提交是就会出现冲突 无法提交

20211120122831

OK

20211120142911

20211120142947

20211120143013

通过SVN 解决

  • 跟新服务器端数据到本地

20211120143135

index.html : 整合后的 index.html 文件

index.html.mine : 后一个人提交的文件

index.html.r1 : 代表两人检出项目之前当前状态

index.html.r2 : 前一个人修改后的文件

  • 删除除 index.html 以为的文件
  • 修改整合后 index.html 的冲突文件

修改前

20211120144404

修改后

20211120144542

  • 重新提交数据到SVN 服务器

20211120144700

成功提交

20211120144735

配置多仓库

在实际项目开发中 我们可能会同时开发多个项目 我们怎么样同时监管多个项目呢?

通过 svnserve 进行项目监管 只能监管某一个文件夹 而不能同时监管多个仓库

解决方式

因为在实际开发中 我们的所有项目 都是放在 WebApp 目录下 所以我们直接监管 WebApp 目录 即可

20211120151026

20211120151104

访问:

Shop

svn://localhost/Shop

Wechat

svn://localhost/Wechat

权限控制

如果要使用权限控制:必须要开启权限功能 在每个仓库里面都有三个文件

ahthz 文件:授权文件

告诉哪些用户具有哪些权限

password 文件: 认证文件

标识当前SVN 系统中某个仓库具有哪些用户及相应的密码

默认情况下 以上两个文件都是禁用的 需要使用 需要先开启

  • 禁用匿名用户可读可写权限

20211120152213

  • 开启授权 认证 文件

20211120152326

  • 配置认证文件

20211120152632

  • 配置授权文件

20211120153039

20211120153443

20211122081631

20211122082143

配置自启动

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


sc create SVNService binpath= "C:\Program Files\VisualSVN Server\bin\svnserve.exe --service -r C:\Program Files\VisualSVN Server\WebApp" start= auto

20211122183701

模拟真实开发环境

20211122185155

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

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

相关文章

ATFX汇市:惠誉下调美债评级,白宫债务无序扩张下,美元国际信用受损

环球汇市行情摘要—— 昨日,美元指数上涨0.06%,收盘在101.94点, 欧元贬值0.12%,收盘价1.0984点; 日元贬值0.75%,收盘价143.33点; 英镑贬值0.46%,收盘价1.2776点; 瑞…

【WiFi】Wi-Fi HaLow技术

目录 1.10大Wi-Fi物联网芯片 2.面向物联网的无线通信技术对比 3.Wi-Fi HaLow值得期待 4.选择IoT Wi-Fi芯片和模块时需要考虑哪些因素? 5.Wi-Fi 6 IoT芯片 5.1.乐鑫科技ESP32-C6 5.2.高通Immersive Home 318平台 6.WiFi BLE IoT芯片 6.1.博流智能 BL602/BL…

SQL-事务

set autocommit 0; select * from acount where name 嘉宝 && acount.money > 1000; update acount set money money - 1000 where name 嘉宝; update acount set money money 1000 where name 煎包; commit ; 脏读;当有两个事务使用同一数据库时&#xff0c…

使用 github 同步谷歌浏览器书签

想必使用谷歌浏览器Chrome的用户一定非常头疼的一件事就是:账户不能登录,书签收藏夹不能同步,换一台电脑书签收藏夹没有了! 下面教大家一招亲测有效适用的方法解决书签同步问题,在任何电脑都可以同步了 1、去下载谷歌…

Delphi 中High DPI开发注意事项

目录 前言: 什么是High DPI? 一、表现不一致的现象 二、当前的解决方案 三、重点 前言: 什么是High DPI? High DPI(高分辨率显示)是指显示设备具有高像素密度的特征。它意味着在相同的显示区域内,显示设备能够…

第7章 动态创建标记

一些传统方法 document.write document对象的write()方法可以方便快捷地把字符串(支持html元素)插入到文档里。 document.write("<h1>hello world</h1>")document.write的最大缺点是它违背了“行为应该与表现分离”的原则。JavaScript和HTML代码混杂在…

eNSP interface g0/0/0 报错解决办法

文章目录 1 报错截图2 解决办法2.1 排查设备是否有 GM 接口2.2 更换适合的路由器&#xff0c;并验证 1 报错截图 2 解决办法 2.1 排查设备是否有 GM 接口 查看下设备是否支持 GM 接口&#xff08;GigabitEthernet&#xff09; 方式一&#xff1a;右键路由器设备 - 设置 - 查看…

【C++】类和对象-继承

0.前言 1.基本语法 继承的用处就是极大的减少代码的重复性&#xff0c;如果没有用继承&#xff0c;看看以下代码&#xff0c;你知道了。。。。 基本实现代码&#xff1a; #include <iostream> using namespace std; /******************************************/void …

8.5周六|Move Dev Meetup厦门站不见不散

Move Dev Meetup是由MoveFuns DAO发起的线下研讨会&#xff0c;旨在为参与的开发者提供深入了解Move语言机会。截至目前为止&#xff0c;Meetup已在成都、深圳、杭州等多个城市举办。Move Dev Meetup厦门站将在8月5日&#xff08;本周六&#xff09;举办&#xff0c;Sui将作为支…

观察级水下机器人使用系列之五三维激光扫描仪

本文主要讲观察级水下机器人Valor配套的三维激光扫描仪&#xff0c;它是近年来ROV的主力光学设备。三维激光扫描仪是Voyis&#xff08;原公司为2G Robotics&#xff09;公司生产的&#xff0c;型号为ULS-500 Micro。 ​编辑​ ULS-500 Micro的技术参数如下图。ULS-500 Pro扫描…

关于docker的一些深入了解

本文将深入介绍一下docker方面的知识&#xff0c;不尽完全&#xff0c;慢慢完善。 进程 进程的概念 在介绍docker的相关知识前&#xff0c;先了解一下相关概念。进程就是系统中正在运行的程序&#xff0c;进程是操作系统的概念&#xff0c;每当我们执行一个程序时&#xff0…

关于 Ubuntu 长按 shift 无效, 按 Esc 直接进入 grub 改密码的解决方法

本次长按shift没有反应&#xff0c;直接进入了系统界面&#xff0c;所以改用长按Esc键&#xff0c;步骤如下&#xff1a; 1. 长按esc&#xff0c;进入grub>提示 2.输入grub>normal &#xff0c;回车 3.上一步回车后&#xff0c;继续敲击Esc &#xff0c;出现grub界面 …

rdp、ftp协议的密码爆破

远程桌面 rdp协议 3389 文件传输 FTP协议 20 21 攻击方&#xff1a;Kali 测试方&#xff1a;Win7 两台都要在同一网段 密码爆破工具 hydra九头蛇 hydra&#xff08;九头蛇&#xff09;是著名黑客组织thc的一款开源的暴力破解密码工具&#xff0c;功能非常强大&#xff0c;ka…

Emacs之远程开发C++配置: emacs + tramp + clangd(一百二十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

大数据学习教程:Linux高级教程(下)

四、大数据集群服务器搭建 1. 新增Linux服务器 1.1、克隆虚拟机 学习环境中&#xff0c;一般使用VMware虚拟机克隆Linux系统&#xff0c;用来进行集群服务器的搭建。 VMware支持两种类型的克隆&#xff1a;完整克隆、链接克隆 完整克隆是和原始虚拟机完全独立的一个复制&…

系统架构设计师_备考第2天(计算机组成与体系结构)

文章目录 考频&#xff08;3分左右&#xff09;一、计算机结构二、CPU组成三、冯诺依曼结构和哈弗结构四、层次化存储结构五、Cache 考频&#xff08;3分左右&#xff09; 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 计算机结构&#xff08;★&#xff0…

魔法上网端口号被占用通过端口号找到进程并且杀掉进程随笔

Windows11系统由于魔法上网被异常关闭导致再次启动的时候报出端口号被占用问题记录以前忘记的通过端口杀掉进程相关操作。 在命令行&#xff08;winr,输入cmd&#xff09;中输入: netstat -ano 可以看到本机正在使用的ip地址和端口号如图&#xff1a; 在命令行&#xff08;wi…

Array.prototype.slice.call()方法详解

slice:用来截取截取字符串方法Array: javascript的一个引用类型&#xff0c;其原型prototype上有一个方法叫slicecall和apply &#xff1a; 用来改变对象中函数内部的this引用&#xff0c;使得函数可以随便换‘妈妈’ 为什么不直接用 arguments.slice(1)呢 不是一样的么? 答案…

springboot第33集:nacos图

./startup.sh -m standalone Nacos是一个内部微服务组件&#xff0c;需要在可信的内部网络中运行&#xff0c;不可暴露在公网环境&#xff0c;防止带来安全风险。Nacos提供简单的鉴权实现&#xff0c;为防止业务错用的弱鉴权体系&#xff0c;不是防止恶意攻击的强鉴权体系。 鉴…

门面模式:简化复杂系统的接口调用

门面模式&#xff1a;简化复杂系统的接口调用 什么是门面模式&#xff1f; 门面模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了一个简单的接口&#xff0c;用于访问复杂子系统中的一组接口。门面模式通过封装子系统的复杂性&#xff0…