当前位置: 首页 > news >正文

SVN简明教程——下载安装使用

SVN教程目录

  • 一、开发中的实际问题
  • 二、简介
    • 2.1 版本控制
    • 2.2 Subversion
    • 2.3 Subversion的优良特性
    • 2.4 工作原理
    • 2.5 SVN基本操作
  • 三、Subversion的安装与配置
    • 1. 服务器端程序版本
    • 2. 下载源码包
    • 3. 下载二进制安装包
    • 4. 安装
    • 5. 配置版本库
      • ① 为什么要配置版本库?
      • ② 创建目录
      • ③ 创建对应的子目录
      • ④创建版本库
      • ⑤ 版本库目录结构
    • 6. 启动服务端程序
      • ① 命令行
      • ② 注册windows服务
    • 7. 客户端的使用
      • ① 检出checkout
      • ② 提交
      • ③ 更新
      • ④ 工作副本的几种状态
      • ⑤ 将工作副本整体回复到某一个历史版本
      • ⑥ 回复某个文件的历史状态,同时不涉及其他文件

一、开发中的实际问题

1.1 备份
1.2 代码还原
1.3 协同修改
1.4 多版本项目文件管理
1.5 追溯问题代码的编写人员及编写时间
1.6 权限控制

二、简介

2.1 版本控制

版本控制 [Revision control],最初来源于工程设计领域,是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

2.2 Subversion

Subversion就是一款实现版本控制的工具软件,通常也称作是版本控制器,简称SVN。
Subversion是Apache软件基金会组织下的一个项目。

2.3 Subversion的优良特性

  1. 目录版本控制

    CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在 客户端对文件和目录执行移动和复制命令。

  2. 原子提交

    提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提 交修改。

  3. 版本控制的元数据

    每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对, 属性也会像文件内容一样被纳入版本控制。

  4. 可选的网络层

    Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机 制,Subversion 的“高级”服务器是 Apache网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏 览等等。也有一个轻型的,单独运行的 Subversion服务器,这个服务器使用自 己的协议,可以轻松的用 SSH 封装。

  5. 一致的数据处理

    Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在 版本库中,差异在网络上双向传递。

  6. 高效的分支和标签

    分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少 并且相对固定的时间,以及很小的版本库空间。

2.4 工作原理

采取客户端/服务器模式——在服务器的版本库中保存项目文 件的各个版本,所有参与协同开发的程序员在自己本地电脑上保存一个工作副本。

SVN支持程序员将本地副本更新到服务器端的最新版本,也支持将本地副本的最新改变更新到服务器端,而且后面的更新不会覆盖前面的更新,而是作为一个新的版本被保存下来——SVN甚至支持将本地工作副本恢复为服务器端保存的某一个历史版本。

在这里插入图片描述

2.5 SVN基本操作

  1. 检出(checkout):将一个服务器创建好的项目下载到本地。
  2. 更新(update):将本地文件更新为服务器端的最新版本
  3. 提交(commit):将本地修改提交到服务器端。

三、Subversion的安装与配置

1. 服务器端程序版本

目前Subversion的最新版本是1.14(笔者现在的时间为2020年9月17日13:54:46)。
我这里使用的是1.8.9版本,大同小异。
在这里插入图片描述

2. 下载源码包

Apache 组织自己维护更新的只是 Subversion的源码,各个版本的源码包的下载地址是:http://subversion.apache.org/download/
Subversion源码是用C语言开发的。

3. 下载二进制安装包

Subversion在不同平台下的二进制包是由不同组织构建实现的,Windows平台下的二进制包实现情况在这个网页: http://subversion.apache.org/packages.html在这里插入图片描述

4. 安装

找到安装文件:
在这里插入图片描述

我们双击这个文件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
它会在环境变量里面自动创建path:
在这里插入图片描述
命令控制台输入svn --version查看到信息表示服务端安装成功了。
在这里插入图片描述

5. 配置版本库

① 为什么要配置版本库?

Subversion 是将文件数据信息保存到版本库中进行管理的,为了满足用户的不同需求,Subversion 允许用户对版本库目录进行定制。

② 创建目录

在一个非中文无空格目录下创建一个文件夹,作为版本库的根目录: 例如:E:\Subversion\VersionRepository

③ 创建对应的子目录

在版本库根目录下创建与具体项目对应的子目录——这样做的目的是使一个 SVN 服务器能够同时管理多个项目,而不是为每一个项目搭建一个 SVN服务器——这显然太浪费资源了。
例如:
E:\Subversion\VersionRepository\AAA
E:\Subversion\VersionRepository\BBB
E:\Subversion\VersionRepository\CCC

④创建版本库

命令格式:

主命令         子命令        参数1
svnadmin      create       仓库路径

例如:svnadmin create E:\Subversion\VersionRepository\LearningSystem
在这里插入图片描述

⑤ 版本库目录结构

版本库创建成功后会在指定目录下产生如下的目录结构:
在这里插入图片描述

其中的conf是存放 版本库所使用的的配置文件的目录。
db是存放存储版本数据的数据库文件的目录。
hooks是存放版本库钩子程序的目录。
locks是存储库锁目录,用来跟踪库的访问者。
format是存储了一个整数的文件,这个整数代表库层次结构版本。
README.txt是版本库自述文件。

6. 启动服务端程序

SVN 服务器必须处于运行状态才能响应客户端请求,帮助我们管理项目文件。 所以我们必须将 SVN 服务器启动起来。启动 SVN 服务器有两种方法,一个是命令 行方式,一个是注册 Windows 服务。

① 命令行

命令格式:

svnserver -d -r E:\Subversion\VersionRepository

其中-d表示后台执行,-r表示版本库根目录,最后一个表示仓库的目录。
在这里插入图片描述

验证服务是否启动成功:
我们看一下现在的端口:
在这里插入图片描述
3690被监听的时候,就表示服务启动了。

命令行的缺陷是:只要运行服务器端程序的命令行窗口一关,服务就停止了,很不方便,而且每次开机都要手动启动。

② 注册windows服务

将SVN服务端程序注册为Windows服务,就可以让SVN服务随系统一起启动,克服了命令行方式的不足。

注册服务用的是windows的sc命令,这个是windows的命令,不是SVN的命令。

命令格式:

sc create 服务名 binpath= "***" start= auto depend= Tcpip
注意:等号的左边都没有空格,右边都有一个空格。

binpath是运行服务所需要的二进制文件路径以及运行该二进制文件的命令行参数。
start= auto表示自动启动。
depend= Tcpip表示依赖TCP/IP协议。

binpath:
其中的binpath的组成结构为:

svnserve.exe路径 参数1 参数2 参数3


svnserve.exe路径:SVN安装目录\bin\svnserve.exe
参数1 --service :表示以服务方式启动Subversion
参数2 -r:表示版本库根目录
参数3 版本库目录

关于版本库的目录:
单仓库:指定与具体项目对应的仓库目录,例如E:\Subversion\VersionRepository,这样只能为一个项目服务;
多仓库:指定版本库的根目录,例如E:\Subversion\VersionRepository\LearningSystem,这样可以为了多个项目服务。

最终命令举例:

sc create MySVNService binpath= "E:\Subversion\bin\svnserve.exe --service -r E:\Subversion\VersionRepository" start= auto depend= Tcpip

注意:如果提示拒绝访问,请以管理员身份运行命令控制台:
在这里插入图片描述
运行结果:
在这里插入图片描述
我们可以在windows的服务里面看到这项了:
在这里插入图片描述

7. 客户端的使用

① 检出checkout

  • 首先进入自己的工作目录,例如,E:\Workspaces

  • 运行svn checkout命令,命令格式如下:

    svn checkout svn://SVN服务器地址/具体仓库目录 保存检出内容的目录
    

    例如:svn checkout svn://localhost/LearningSystem Learn
    结果:在这里插入图片描述

  • 工作副本

    运行 checkout 命令后进入 MyERP 目录,看到里面什么都没有。真的什么都没有吗?不是的。检出命令会在这一目录下创建一个隐藏目录.svn,用来保存与服务器交互的重要信息,其中包括从服务器端取回的最新版本信息、文件状态、更新时间等。SVN正是以此为依据判断当前目录中文件的状态。
    在这里插入图片描述
    所以这个隐藏目录千 万不要删除或修改其中的内容——完全无视它的存在吧。如果服务器端保存的文件可以视为一个“正本”,那么每个开发人员检出到本地目录的文件可以视为“副 本”,通常称为工作副本。

② 提交

  • 进入我们的工作空间,并进入我们拷贝下来的目录:
    在这里插入图片描述

  • 我们新建一个文件,比如:test.txt
    在这里插入图片描述

  • 我们执行提交命令(在本目录下)试一下:
    在这里插入图片描述
    说明,一个文件,必须纳入版本控制才能可以提交到服务器端!

  • 执行svn add命令,将test.txt纳入版本控制
    在这里插入图片描述

  • 再次执行svn commit 命令:
    在这里插入图片描述
    这是因为我们没有这次提交附加任何日志信息,这在团队开发中是极为不好的习惯!

  • 使用-m 参数附加日志信息:
    在这里插入图片描述
    这是因为我们没有开启权限。

  • 暂时开启匿名权限
    1.进入对应的版本库目录下的conf目录下
    2.打开svnserve.conf文件
    3.将其中的# anon-access = read改为anno-access = write,也就是去掉#,并且将read改为write。注意一定要顶格写,不要留空格。
    在这里插入图片描述
    不需要重启 SVN服务,甚至不需要重新打开命令行窗口。

  • 重新执行提交命令
    在这里插入图片描述
    这样我们就提交成功了。

    其实我们在提交的时候不需要指定具体的文件,这样就表示提交当前工作副本中。

③ 更新

  • 将服务器端的文件检出到一个新的目录Learn2,模拟另一个终端:
    在这里插入图片描述

  • 我们回到Learn,我们对test.txt做一些修改后提交。
    在这里插入图片描述
    在这里插入图片描述

  • 我们进入Learn目录,执行update命令:
    在这里插入图片描述
    这样我们就可以在“新的目录”下看到“旧的目录”下做的更改了。

  • 思考:更新和检出的相同点和不同点分别是什么?

    相同点: 从服务器端下载最新的内容
    不同点:
    检出:下载整个项目;
    更新:下载与本地工作副本不同的内容
    检出:创建.svn目录,使检出目录成为工作副本
    更新:依赖.svn目录
    检出:只能操作1次
    更新:可以操作多次

④ 工作副本的几种状态

  1. 没有修改,现行版本

    本档案在工作目录中没有被修改,而且自当前版本之后,其他终端也没有任何该文件的修改被提交到服务器,即当前工作副本的版本和服务器端最新版本是一致 的。对它执行 svn commitsvn update都不会发生任何事。

  2. 本地修改,现行版本

    这个文件被修改过,但这个修改还没有提交到服务器,而且自当前版本之后,其 他终端也没有任何该文件的修改被提交到服务器,所以当前工作副本的版本和服 务器端最新版本仍然是一致的。由于有尚未送交回去的本地修改,所以对它的 svn commit 会成功提交你的修改,而 svn update 则不会作任何事。

  3. 没有修改,仓库版本

    这个文件没有修改,但是版本库中有其他终端提交的修改。此时当前工作副本的 版本比服务器端的版本落后了,我们称之为“过时”。对当前文件的 svn commit 不 会发生任何事,而 svn update 会让工作目录中的文件更新至最新版本。

  4. 本地修改,过时版本

    服务器端存在没有更新到本地的修改,导致当前版本过时。如果这个文件在 本地有未提交的修改,则无法提交,对它执行 svn commit 会产生“out-of-date” 错误。 此时应该先尝试更新本地文件。更新时 SVN 会尝试将服务器端的更新与本地 文件进行合并,合并的结果有两种可能:一个是服务器端和本地修改位于文件的 不同位置,合并成功;另一个是服务器端的修改正好和本地修改位于同一个位置, 发生冲突。

⑤ 将工作副本整体回复到某一个历史版本

  • 假设当前版本为12,想要取回版本9
  • 执行svn update命令
    格式:svn update --revision 想要取出的版本号
    例如:svn update --revision 1
    运行:
    在这里插入图片描述
  • 这里需要注意的是,SVN 版本号并不是对某一个文件进行编号,而是对应整个版本库总体状态的一个“快照”,取回某个版本不是取回版本号对应的某个文件, 而是整个项目的一个快照。
    在这里插入图片描述

⑥ 回复某个文件的历史状态,同时不涉及其他文件

  • 假设想取回test.txt在版本2时的状态
  • 执行svn update 命令

相关文章:

SVN简明教程——下载安装使用

SVN教程目录 一、开发中的实际问题二、简介2.1 版本控制2.2 Subversion2.3 Subversion的优良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安装与配置1. 服务器端程序版本2. 下载源码包3. 下载二进制安装包4. 安装5. 配置版本库① 为什么要配置版本库?② 创建目…...

AJAX的理解和原理还有概念

你想问的可能是 AJAX(Asynchronous JavaScript and XML) ,它并不是一门新的编程语言,而是一种在无需重新加载整个网页的情况下,能够与服务器进行异步通信并更新部分网页的技术。以下从基本概念、原理、优点、使用场景等…...

利用AI让数据可视化

1. 从问卷星上下载一份答题结果。 序号用户ID提交答卷时间所用时间来源来源详情来自IP总分1、《中华人民共和国电子商务法》正式实施的时间是()。2、()可以判断企业在行业中所处的地位。3、()是指店铺内有…...

FOC——Butterworth (巴特沃斯)数字滤波器(2025.03.18)

参考链接1: [DSP] Butterworth (巴特沃斯)数字滤波器设计参考 参考链接2: 陈佩青《数字信号处理教程》 参考链接3: ButterWorthFIlter(巴特沃斯滤波器) 在此感谢各位前辈大佬的总结,写这个只是为了记录学习大佬资料的过程,内容基本…...

Redis如何实现持久化

Redis如何实现持久化 Redis默认将所有数据存储在内存中,虽然读写效率极高,但存在两大风险 数据易失性:进程重启或服务器宕机导致内存数据丢失。恢复成本高:无法直接通过内存重建大规模数据集。 Redis作为高性能的键值数据库&…...

docker安装rabbitmq并配置hyperf使用

为满足您的高标准需求,我将分步骤为您详细解释如何通过Docker安装RabbitMQ服务器,并展示如何配置PHP的Hyperf框架来使用RabbitMQ。 安装RabbitMQ: 获取RabbitMQ镜像在终端中运行以下命令来拉取RabbitMQ的官方Docker镜像: docker …...

极空间NAS部署gitea教程

极空间NAS部署gitea步骤教程 背景1. 准备镜像1.1 极空间官方1.2 Win系统docker再上传1.3 镜像转录 2. MySql配置2.1 容器配置2.2 命令行配置 3. gitea配置3.1 容器配置3.2 打开网页3.3 网页配置安装 参考资料 背景 极空间Nas和别的Nas不同的地方就在于,他不是那种标…...

大模型学习-从零开始在colab训练大模型

目录 写这篇文章的目的 1.准备训练所需的文件 2.将压缩包上传到谷歌云盘 使用colab 3.训练 写这篇文章的目的 这篇文章是对:大模型学习-在colab中训练并更换模型_colab调整模型-CSDN博客的一个优化,因为在之前的博文中,我是提供了一个现…...

【商城实战(38)】Spring Boot:从本地事务到分布式事务,商城数据一致性的守护之旅

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配&#xf…...

漏洞知识点《PHP数组绕过深入解析》

在PHP中,通过数组绕过安全限制的核心原理与PHP语言特性和底层实现机制密切相关。以下是具体原因及技术细节分析: 一、PHP参数解析机制的特性 PHP的$_GET、$_POST等超全局变量支持将用户输入自动解析为数组。例如,通过URL参数?username[0]a…...

【极光 Orbit·STC8x】05. GPIO库函数驱动LED流动

【极光 OrbitSTC8】05. GPIO库函数驱动LED流动 七律 逐光流转 八灯列阵若星河,状态为舟渡长波。 寄存器中藏玄机,Switch语句定山河。 循环往复如潮涌,步骤变量掌沉浮。 单片机前展锋芒,代码织就光之舞。 摘要 本文基于STC8H8K6…...

SSH配置过程及无法正常链接问题的解决【小白教学】

1.尝试克隆github上的项目,发现无法正常下载【之前有些是可以的】 git clone https://github.com/mogualla/PythonRobotics.git --depth 3 出现下面的提示【错误】: Cloning into PythonRobotics... fatal: unable to access https://github.com/mogua…...

总结 HTTP 协议的基本格式, 相关知识以及抓包工具fiddler的使用

目录 1 HTTP是什么 2 HTTP协议格式 3 HTTP请求(Request) 3.1 认识URL 3.2 方法 3.3 认识请求"报头"(header) 3.3.1 Host 3.3.2 Content-Length 3.3.3 Content-Type 3.3.4 User-Agent (简称UA) 3.3.5 Referer 3.3.6 Cookie和Session 4 HTTP响应详解 4.…...

Conda 虚拟环境创建:加不加 Python 版本的深度剖析

在 conda 中创建虚拟环境时,是否指定 Python 具体版本会直接影响环境构建的底层逻辑、依赖管理方式以及后续开发的可控性。 一、核心机制对比 不指定 Python 版本 (conda create -n env_name) 默认继承基础环境版本 Conda 会使用当前基础环境(如 base&am…...

docker的anythingllm和open-webui压缩包分享(国内镜像拉取,百度云压缩包分享)

文章目录 前言第一部分:镜像获取🚀 方式一:切换国内下载镜像✅1. 下载anythingllm✅ 2. 下载open-webui 🚀方式二:下载我分享的百度云✅ anythingllm压缩包百度云链接❎ open-webui压缩包 第二部分:下载之后…...

C#命令行参数用法

C#命令行参数用法 static void Main(string[] args){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);// 解析命令行参数if (args.Length > 0){// 这里处理命令行参数,例如:打开文件、设置配置等// 例如&…...

Unity3D开发AI桌面精灵/宠物系列 【二】 语音唤醒 ivw 的两种方式-Windows本地或第三方讯飞等

Unity3D 交互式AI桌面宠物开发系列【二】ivw 语音唤醒 该系列主要介绍怎么制作AI桌面宠物的流程,我会从项目开始创建初期到最终可以和AI宠物进行交互为止,项目已经开发完成,我会仔细梳理一下流程,分步讲解。 这篇文章主要讲有关于…...

Matlab概率区间预测全家桶更新了,新增光伏出力区间预测,4种分布可供预测

基本介绍 适用于matlab2020及以上。可任意选择置信区间,区间覆盖率picp、区间平均宽度百分比等等,可用于预测不确定性,效果如图所示,采用KDE,4种分布进行预测,有对比,可以替换成自己的数据。 …...

第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统

第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统 作者:DogDog_Shuai 阅读时间:约20分钟 难度:中级 目录 1. 引言2. Linux容器核心技术3. Namespace详解4. Cgroup详解5. 联合文件系统6. 容器运行时原理...

用css绘制收银键盘

最近需求说需要自己弄个收银键盘&#xff0c;于是乎直接上手搓 主要基于Vue3写的&#xff0c;主要是CSS <template><view class"container"><view class"info"><image class"img" src"" mode"">&l…...

aws训练快速入门教程

AWS 相关核心概念 简洁地介绍一下AWS训练云服务的核心关联概念: AWS核心服务层: 基础设施层: EC2(计算), S3(存储), RDS(数据库)等人工智能层: SageMaker(训练平台), AI服务等 机器学习服务分级: 高层: 预构建AI服务(开箱即用)中层: SageMaker(主要训练平台)底层: 框架和基…...

基于FPGA轨道交通6U机箱CPCI脉冲板板卡

板卡简介&#xff1a; 本板为脉冲板&#xff0c;脉冲板主要执行CPU下达的指令&#xff0c;通过实现各种控制算法来调节PWM&#xff0c;然后输出光纤PWM信号来驱动变频器功率模块以达到控制电机的目的。 性能规格&#xff1a; 电源&#xff1a;DC5V&#xff1b;15V FPGA&…...

数据库GreenDao的使用、升级、以及相关常用注释说明

目录 一、使用GreenDao的流程 添加GreenDao依赖配置greendao的generator生成文件使用GreenDao生成bean类 3.1 创建实体类 3.2 生成dao文件创建GreenDaoManager来进行统一管理&#xff0c;并初始化 4.1 创建GreenDaoManager 4.2 在Application中进行初始化GreenDao使用GreenDa…...

【C++】 —— 笔试刷题day_6

刷题day_6&#xff0c;继续加油哇&#xff01; 今天这三道题全是高精度算法 一、大数加法 题目链接&#xff1a;大数加法 题目解析与解题思路 OK&#xff0c;这道题题目描述很简单&#xff0c;就是给我们两个字符串形式的数字&#xff0c;让我们计算这两个数字的和 看题目我…...

PostgreSQL:语言基础与数据库操作

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

cmake 之 CMakeLists.txt 中的函数是从哪里来的

我们都知道&#xff0c;cmake会解释执行 CMakeLists.txt 以及其他 *.cmake 脚本&#xff0c; 这里先给出一个“先验” 的知识点&#xff1a; 任何一个独立脚本或脚本函数命令的执行&#xff0c;都是通过 CPP 函数 RunListFile(...) 调用的 void cmMakefile::RunListFile(cmL…...

谷歌or-tools开源库入门

1.命令行编译程序 这里要说明下&#xff0c;直接用qt或者VS2022打开cmake工程&#xff0c;编译没有成功。所以&#xff0c;老老实实的按照官方教程来&#xff0c;使用命令行编译。 &#xff08;1&#xff09;准备 1&#xff09;安装cmake&#xff0c;版本3.18以上&#xff0…...

深入解析 C++ Vector:全面掌握 STL 核心容器的原理与高效实践

一、Vector 的核心概念与特性 Vector 是 C 标准库中最常用的动态数组容器&#xff0c;其底层基于连续内存存储元素&#xff0c;兼具数组的高效访问与动态扩容的灵活性。以下是其核心特性&#xff1a; 1.1 核心特性对比 特性普通数组Vector 容器内存分配静态固定动态增长访问效…...

【MySQL】MySQL数据存储机制之存储引擎

目录 1.如何理解存储引擎&#xff1f; 2.MySQL 提供的存储引擎 3.存储引擎的功能特性 &#xff08;1&#xff09;存储介质 &#xff08;2&#xff09;事务处理能力 &#xff08;3&#xff09;锁定 &#xff08;4&#xff09;备份和恢复 &#xff08;5&#xff09;优化…...

OpenCV旋转估计(1)用于估计图像间仿射变换关系的类cv::detail::AffineBasedEstimator

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 基于仿射变换的估计器。 这种估计器使用匹配器估算的成对变换来为每个相机估算最终的变换。 cv::detail::AffineBasedEstimator 是 OpenCV 库中…...

小红书不绑定手机号会显示ip吗

小红书作为一个生活方式分享平台&#xff0c;拥有庞大的用户群体。在小红书上&#xff0c;用户可以分享自己的生活点滴、购物心得、美食体验等&#xff0c;与其他用户进行互动交流。最近&#xff0c;不少用户对于小红书是否会在不绑定手机号的情况下显示IP属地产生了疑问&#…...

网络空间安全(36)数据库权限提升获取webshell思路总结

一、获取数据库访问权限 寻找漏洞&#xff1a; SQL注入&#xff1a;这是最常见的方法之一。攻击者通过SQL注入漏洞&#xff0c;可以在数据库执行任意SQL语句&#xff0c;从而获取数据库中的数据&#xff0c;甚至可能获取数据库的访问权限。配置文件泄露&#xff1a;有时&#x…...

OceanBase 中,如何抓包分析应用连接超时的问题

本文作者&#xff1a;胡呈清&#xff0c;爱可生 DBA 团队成员&#xff0c;擅长故障分析、性能优化 与MySQL这类单机数据库相比&#xff0c;OceanBase分布式数据库的访问链路相对较长&#xff0c;因此在遇到连接异常时&#xff0c;排查过程需要额外考虑更多环节。接下来&#xf…...

用uv管理python环境/项目(各种应用场景)

一、安装uv 有python的情况 pip install uvWindows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"linux或macOS curl -LsSf https://astral.sh/uv/install.sh | sh二、换镜像源 uv不会读取pip的镜像源配置&#xff0c;所…...

Linux——进程(5)进程地址空间

先看一个程序和现象 预期现象是&#xff0c;子进程和父进程相互独立&#xff0c;子进程的gval是100&#xff0c;101&#xff0c;102....而父进程一直都是100. 结果我们并不意外&#xff0c;只是我们发现&#xff0c;父子进程的gval的地址是一样的&#xff0c;这有点颠覆我们的认…...

docker(1) -- centos镜像

1. 前言 我在WSL中运行的系统是ubuntu2024&#xff0c;并安装了docker&#xff0c;想要在docker中运行一个centos的系统。 2. 下载并运行镜像 # 下载centos最新版镜像 $ docker pull centos Using default tag: latest latest: Pulling from library/centos a1d0c7532777: P…...

Vitis 2024.1 无法正常编译custom ip的bug(因为Makefile里的wildcard)

现象&#xff1a;如果在vivado中&#xff0c;添加了自己的custom IP&#xff0c;比如AXI4 IP&#xff0c;那么在Vitis&#xff08;2024.1&#xff09;编译导出的原本的.xsa的时候&#xff0c;会构建build失败。报错代码是&#xff1a; "Compiling blank_test_ip..."…...

【源码阅读】多个函数抽象为类(实现各种类型文件转为PDF)

目录 一、原始函数二、类三、转换过程 一、原始函数 最开始就是写了几个函数&#xff08;包括doc、excel、ppt类型的文件&#xff09;转换为pdf&#xff0c;需要将这些函数形成一个类。相似的一类函数就可以组成一个实现特定功能的类 import subprocess import pandas as pd i…...

word插入Mathtype公式居中和自动更新

word插入公式自动更新 前提&#xff1a;安装Mathtype 1.word中查看页的宽度 出现如下 2.设置样式 出现这个窗口 给样式随便起个名字 3.修改样式 3.1 设置两个制表位 第二个 3.2 修改公式字体 如下所示 4. 修改公式格式 4.1在word中打开 Mathtype 4.2 修改公式的格式 变成…...

SpringSecurity配置(自定义认证过滤器)

文末有本篇文章的项目源码文件可供下载学习 在这个案例中,我们已经实现了自定义登录URI的操作,登录成功之后,我们再次访问后端中的API的时候要在请求头中携带token,此时的token是jwt字符串,我们需要将该jwt字符串进行解析,查看解析后的User对象是否处于登录状态.登录状态下,将…...

python字符级差异分析并生成 Word 报告 自然语言处理断句

import difflib from docx import Document from docx.shared import RGBColor from snownlp import SnowNLPdef analyze_char_differences(text_a, text_b):"""分析两个文本的字符级差异:param text_a: 第一个文本:param text_b: 第二个文本"""…...

企业级云MES全套源码,支持app、小程序、H5、台后管理端

企业级云MES全套源码&#xff0c;支持app、小程序、H5、台后管理端&#xff0c;全套源码 开发环境 技术架构&#xff1a;springboot vue-element-plus-admin 开发语言&#xff1a;Java 开发工具&#xff1a;idea 前端框架&#xff1a;vue.js 后端框架&#xff…...

使用GoldenGate完成SQLserver到Oracle的数据实时同步

一、环境准备 *项目**源环境**目标环境*操作系统CentOS Linux release 7.6CentOS Linux release 7.6IP地址192.168.3.92192.168.3.168数据库及版本SQLserver 2016Oracle 11.2.0.4.0GoldenGate用户oggoggGoldenGate版本12.3.0.2.012.3.0.2.0 二、OGG架构 GoldenGate v11 能够…...

【OpenCV C++】如何快速 高效的计算出图像中大于值的像素个数? 遍历比较吗? No,效率太低!那么如何更高效?

文章目录 1 问题2 分析3 代码实现 (两种方法实现)方法1: 使用cv::compare方法2: 使用cv::threshold3.2 compare和threshold 看起来都有二值化效果? 那么二者效率?4 compare函数解释4.1 参数解释4.2 底层行为规则4.3 应用示例4.4 典型应用场景1 问题 一幅图像的目标区域ROI…...

Golang | 每日一练 (6)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Golang | 每日一练 (6)题目参考答案什么是内存逃逸&am…...

git clone, 算是解决可以访问github但无法clone的问题

本文的前提是使用了**且可以正常访问github 查看代理的端口 将其配置到git 首先查看git配置 git config --list然后添加配置&#xff0c;我这边使用的是Hiddfy默认的端口是12334&#xff0c;如果是clash应该是7890 git config --global http.proxy 127.0.0.1:12334其他 删除…...

SpringBoot项目controller层接收对应格式请求的相关RequestMapping配置

目录 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; 注&#xff1a;此情况注意和&#xff08;4&#xff09;中情况进行区分 &#xff08;4&#xff09; 在几个springboot项目开发后&#xff0c;我总结了以下的一些常见的接收对应请求的…...

基于ssm学科竞赛小程序的设计及实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着信息时代的来临&#xff0c;过去的学科竞赛管理方式的缺点逐渐暴露&#xff0c;本次对过去的学科竞赛管理方式的缺点进行分析&#xff0c;采取计算机方式构建学科竞赛小程序。本文通过阅读相关文献&#xff0c;研究国内外相关技术&#xff0c;提出了一种关于竞赛信息…...

【论文笔记】VGGT-从2D感知3D:pose估计+稠密重建+点跟踪

VGG组联合Meta改进了dust3r&#xff0c;输入图片&#xff0c;输出对应的一系列3D属性&#xff0c;被CVPR2025收录&#xff01; 1.abstract 我们提出了VGGT&#xff0c;一种前馈神经网络&#xff0c;能够直接从场景的一个、几个或数百个视角推断出所有关键的3D属性&#xff0c;…...

【大模型系列篇】硅基智能开源数字人模型HeyGem.ai,开启数字人时刻

硅基智能开源数字人模型HeyGem.ai, 1秒克隆生成4K视频, 支持离线多语言, 开源72小时狂揽1.3k星, 目前已经获得3.4k星。 硅基智能正式宣布在GitHub开源全球TOP级数字人模型&#xff0c;同时发布基于该模型的同名数字人工具硅基数字人克隆的本地安装包&#xff0c;这一举措标志着…...