SVN从安装到使用

article/2025/9/15 16:19:39

这里写目录标题

  • 1. SVN的简要概述
    • 1.1 什么是SVN
    • 1.2 为什么使用SVN
  • 2. SVN的获取及安装步骤
    • 2.1 获取SVN软件
    • 2.2 SVN安装步骤
  • 3. SVN的大致操作流程
    • 3.1 SVN服务端的大致操作流程
    • 3.2 使用客户端软件连接SVN服务器
  • 4. SVN使用详解(三大指令)
    • 4.1 三大指令之checkout(检出指令)
    • 4.2 三大指令之Commit(提交指令)
    • 4.3 三大指令之Update(更新指令)
  • 5. SVN使用详解(图标集)
    • 5.1 查看各种图标集
    • 5.2 忽略功能
  • 6. SVN使用详解(版本回退)
    • 6.1 两张图了解版本回退
  • 7. SVN使用详解(版本冲突)
    • 7.1 什么是版本冲突
    • 7.2 解决版本冲突问题
  • 8. 配置多仓库与权限控制
    • 8.1 配置多仓库
    • 8.2 权限控制
  • 9. SVN服务的配置与管理
    • 9.1 配置自动服务
    • 9.2 进入服务的方法,开启服务
    • 9.3 创建批处理文件
  • 10. 钩子程序

1. SVN的简要概述

1.1 什么是SVN

(1) SVN的全称是SubVersion
(2) SVN版本控制软件可以解决协助开发 远程开发和版本回退的三个主要问题
(3) 特点是操作简单,入门容易。支持跨平台操作 支持版本回退功能(业内也叫时间机器)

1.2 为什么使用SVN

(1)协作开发
(2)远程开发
(3)版本回退
(4)总结一点:都是为了工作

2. SVN的获取及安装步骤

2.1 获取SVN软件

(1) 属于C/S结构软件(客服端与服务端)
服务端软件获取地址:http://www.visualsvn.com/

客户端地址:https://tortoisesvn.net/downloads.html
(1) 细说一下这个的下载,因为有涉及到可以汉化
(2) 点击链接到这页面往下滑。
在这里插入图片描述
(3)根据自己的电脑下载即可,接着下滑下载语言包在这里插入图片描述
(4)这里下载语言包,自行选择
在这里插入图片描述

2.2 SVN安装步骤

(1) 安装步骤的话就就不细说了,基本都是默认设置。
(2)说一下语言包的安装
(3)双击下载好的语言包,一直下一步即可。
(4)桌面空地右键看到一个,点击settings
在这里插入图片描述
(5) 选择语言即可
在这里插入图片描述

3. SVN的大致操作流程

3.1 SVN服务端的大致操作流程

(1) 主要三个指令

  1. Checkout(检出):其主要功能是(这个指令一般只在第一次连接服务器的时候使用)
    1.1 建立与服务器的连接
    1.2 更新服务器端的数据到本地
  2. Update(更新):其主要功能是
    2.1 更新数据到本地(当你建立完跟服务器端的连接以后,往后的更新服务器数据到本地都是使用这个指令)
  3. Commit(提交):其主要功能是
    3.1 当你开发完成以后,提交代码到服务器上

(2)SVN服务端配置

  1. 创建一个项目
    1.1 首先在安装好的SVN目录创建一个公有目录WebApp作为项目目录
    1.2 在WebApp目录下创建一个xxxx文件夹,做为xxxx版本仓库(注意这里还没跟svn产生关联,只是个普通文件夹)
    1.3 创建版本仓库:进入cmd输入svnadmin create xxxx(xxxx即你创建的文件夹目录比如:D:\SVN\SvnInstall\WebApp\Shallow),成功之后该文件夹下会多出一些东西

(3)服务端监管

  1. Apache -> http://localhost或ip地址访问到相关目录下相关文件(监管)
  2. Svn -> svn://localhost或ip地址访问到相关数据仓库
  3. 基本语法:svnserve -d -r D:\SVN\SvnInstall\WebApp\Shallow(即之前的路径)通过该指令svn://localhost或ip地址就可以直接指向版本仓库

(4) 权限控制

  1. 默认情况下,svn服务器是不允许匿名用户上传文件到服务端的,所以必须更改项目的相关配置文件
  2. 更改方法:找到你创建的版本仓库,打开conf目录找到svnserve.conf更改如下配置:找到 #anon-access = read 更改为anon-access = write

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

(1) 当你配置完之后,首先在你的项目目录鼠标右键,选择到Tortoisesvn再选择版本库浏览器,最后输入地址,svn://地址(本地可以直接输入localhost, 即svn://localhost)

(2)在弹出来的框里选中文件夹右键,选择检出,然后一路确定就ok。记得如果没看到有个.svn文件那是因为这是个隐藏文件夹,你要把它显示出来即可。

4. SVN使用详解(三大指令)

4.1 三大指令之checkout(检出指令)

(1) 建立服务器连接
(2) 更新服务器端数据到本地
(3) 注意checkout只在第一次与服务端连接时操作一次,之后都是用Update(更新指令)

4.2 三大指令之Commit(提交指令)

(1) 在你检出的文件夹里添加并开发完代码后,在此文件夹空白地方右键选择提交。进入一个框里面记得完善提交的信息

4.3 三大指令之Update(更新指令)

(1) 在你的文件夹下右键选择更新即可更新数据

5. SVN使用详解(图标集)

5.1 查看各种图标集

(1) 图标集(查看图标种类:找到你项目的文件夹,右键选择Tortoisesvn-在选择设置,看到一个框之后选择图标覆盖-图标集)
在这里插入图片描述
(2) 常用图标集介绍

  1. 常规图标:当客户端文件与服务器文件完全同步时
  2. 冲突图标:当客户端提交文件与服务端数据有冲突
  3. 删除图标:当服务端数据删除,客户端就会显示
  4. 增加图标:当我们编写文件已经添加到提交队列
  5. 无版本控制图标:当编写文件没有添加到上传队列
  6. 修改图标:当客户端文件有修改但没有提交
  7. 只读图标:当客户端文件以只读形式存在时
  8. 锁定图标:当服务器数据已锁定时
  9. 忽略图标:客户端文件已经忽略,不需要上传

5.2 忽略功能

(1) 当我们希望有些文件不上传至svn服务器时,应该将该文件或者该文件类型的文件添加到忽略列表
在这里插入图片描述

6. SVN使用详解(版本回退)

6.1 两张图了解版本回退

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

7. SVN使用详解(版本冲突)

7.1 什么是版本冲突

  1. 在实际开发中,如果两个人同时修改某个文件就会产生版本冲突问题

7.2 解决版本冲突问题

  1. 错开开发的时间
  2. 开发各自的模块
  3. 通过svn解决版本冲突问题
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后进入冲突文件进行更改,再次提交即可

8. 配置多仓库与权限控制

8.1 配置多仓库

  1. 通过监管WebApp总目录来达到监管所有的仓库的目的:svnserve -d -r D:\SVN\SvnInstall\WebApp

  2. 访问的时候同样使用:svn://localhost来访问,但是需要加上要监管的某个仓库的名字,比如:svn://localhost/xxxx(xxxx即为你的仓库名)

8.2 权限控制

  1. 首先开启权限功能(看下面步骤):
  2. 在仓库里找到conf文件夹,里面有三个文件
  3. Authz:授权文件,告诉用户有哪些权限
  4. Passwd:认证文件,标识当前svn系统中某个仓库具有哪些用户以及相应的密码
  5. 默认情况下这两个文件都是关闭的,开启步骤:
  6. 打开仓库里的conf里面的svnserve.conf文件
  7. 注释掉# anon-access = write
  8. password-db = passwd和authz-db = auth删除前面的#和空格
  9. 编写认证文件,定义用户和密码:打开passwd(这个文件也在conf文件夹里)
  10. 编写认证文件定义相关用户名和密码
    在这里插入图片描述
    在这里插入图片描述

9. SVN服务的配置与管理

9.1 配置自动服务

进入cmd输入命令:\

sc create xxxx binpath= “D:\SVN\SvnInstall\bin\svnserve.exe --service -r D:\SVN\SvnInstall\WebApp” start= auto

PS:xxxx为创建的自定义名字,前面路径为安装的svn的bin目录里的sevserve.exe,后面你路径为创建的WebApp总目录。最重要的一点:每个= 号后面有个空格

9.2 进入服务的方法,开启服务

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

9.3 创建批处理文件

  1. Start xxxx服务:新建一个bat文件,里面编译内容为:net start xxxx(xxxx为你创建服务时名的名)
  2. ②Stop xxxx服务:新建一个bat文件,里面编译内容为:net stop xxxx
  3. ③删除xxxx服务也是创建一个bat文件,内容为:sc delete xxxx

10. 钩子程序

(1) 所谓钩子就是与一些版本库事件触发的程序,例如:新修订版本的创建,或是未版本化属性的修改。

(2) 默认情况下,钩子的子目录(版本仓库/hooks)中包含各种版本库中钩子模板

  1. Post-commit.tmpl: 事务完成后所触发的钩子程序
  2. 钩子程序默认情况可以采用批处理指令或Shell指令来进行编写

(3) 通过批处理指令编写钩子程序
3. 指令SVN服务器工作目录
4. 设置服务端svn路径: SET SVN=”D:\SVN\SvnInstall\bin\svn.exe”
5. 指定web服务器工作目录: SET DIR=”D:\Users\SVN_Test\Test06”
6. 通过update指令实时更新数据到DIR目录中: SVN update %DIR%
7.具体操作:

  1. 复制post-commit.tmpl为post-commit.bat文件
  2. 填入相关指令
    在这里插入图片描述
  3. 创建一个新项目并更新svn数据到本地
  4. 然后添加文件更新后,D:\Users\SVN_Test\Test06里里面也会自动更新

http://chatgpt.dhexx.cn/article/C2QGUvJ8.shtml

相关文章

基于QT的安卓手机蓝牙APP开发

摘要:前段时间用QT写了一个串口调试助手,感觉还可以。因为QT是跨平台的,同样一套代码可以在windows上面跑,也可以在linux上面跑,也可以在安卓手机上面跑。而且不需要修改任何东西,编译器会自动给你生成好&a…

【安卓实现手机通讯录】开发总结

Android实现手机通讯录 总结遇到的问题一、 权限安卓的权限主要分为问题二、Android studio 数据库可视化操作三、数据库查找工作1、查找联系人信息2、如何异步查询短信记录 四、Intent 传送数据1.使用方式一:2.使用方法二: 五、运行时的错误1.空指针异常…

手机程序开发

如今手机已成为大众的交流工具。有关手机的程序开发越来越广泛,本节通过几个典型实例介绍如何利用短信猫发送、接收短信、远程控制计算机、业务员销售数据采集和短信息娱乐互动平台。 实例431 利用短信猫收发短信息 实例说明 短信猫是利用SIM卡发送短信的硬件设备&…

实战用Python+Pygame+Kivy(Buildozer)+Ubuntu开发安卓android手机端apk游戏及踩坑分享

在学习Python过程中,第一个接触到了Pygame和Pygame ZERO两个库,学完Pygame的基础知识后,就开始研究如何让程序在手机端运行,于是就开始了无尽的踩坑过程。 游戏的编写和设计就一笔略过,基础的源代码网上下载的&#x…

【安卓开发】

adb 查看Android版本号和SDK版本号 获取系统版本: adb devices adb usbadb shell getprop ro.build.version.release获取系统api版本: adb shell getprop ro.build.version.sdk争做数字极简主义,从买一台多亲2pro老年机开始 进入开发者&…

AndroidStudio连接安卓手机开发与调试

由于最近需要出去做学习汇报,本人就想着做一个简单的成品进行展示(入门级),又通过这段时间的学习发现,用安卓手机进行调试代码,不仅可观还方便展示哈哈哈,,但是连接手机调试的过程中…

Android开发板

由于公司要做智能自助设备,因此需要在Android开发板上开发,记录一下经验 一、Android开发板应用 Android开发板应用: 商业应用:机顶盒、广告机,自助机,售卖机,多媒体教学,人脸识别…

0.1.2 arduinodroid安卓手机版开发工具

原料: 能联网的手机1个 OTG转接头1个 开发板1个 数据线1根 目的: 在没有电脑的环境下码代码、编译、debug、update固件 首先手机上下载安装【arduinodroid】应用 然后用数据线连接OTG手机和开发板, 打开软件在右上角的【...】打开设置…

Android开发技术

Android 开发技术 1.RecycleView 设置监听器2.TimepickerView使用3.EditText隐藏下划线 1.RecycleView 设置监听器 步骤: 1、在Adapter中新建一个接口,定义接口内部的方法,并将该接口在adapter中实现 编写回调接口的基本步骤: 1…

安卓手机APP 开发

最近在准备开题报告,已经很久没再写博客了,明天要开题答辩了,十分紧张,写个博客,放松一下,祝自己明天顺利通过。哈哈!!!!! 前一阵子,…

利用手机、平板开发安卓APP(入门篇)

在这之前,开发安卓APP的开发者们只能依赖PC端的eclipse或Android studio等IDE开发软件,至少在您打开这篇文章时就已经证明您从未使用手机开发过安卓APP。如果您继续往下读就会相信并且确信:单纯使用手机、平板也能构建一个十全十美的APP应用。…

Android开发入门

文章目录 基础认识 Android作业:利用百度LBS定位期末作业:Android(仿QQ登入网易新闻)其他自学 基础认识 Android 开发:用于安卓手机APP开发 PHP:动态网页 Android Android系统是由Andy Rubin创建的&…

【Android开发】

系列文章目录 软工课设学习记录贴 基于android原生Java(后端)pythondjango 文章目录 系列文章目录一、Android Studio布局2.Activity活动2.1 活动的生命周期 3、底部导航BottomNavigationViewFragment3.1 Fragment3.2 Frame Layout 4.Intent4.1 显示Int…

android软件开发

安卓开发笔记 第一课xmlmach_parent 文件夹组成新建导入程序页面 第一课xml Linear layout:线性布局 android:orientation“vertical”(垂直布局) 布局属性 background"#ff0000"(设置背景色) layout_width“200dp” (dp类似像素单位) 其中字…

Android手机端编程开发软件合集(一)

【2022-05-14链接已更新】在网上搜索了很久才找到的编程IDE高级解锁版, 在这里记录并分享一下吧! 一、合集地址: 蓝奏云:https://huanxingke.lanzoux.com/b0203kqjg 密码:flyingdream 二、软件合集截图如下&#xff…

python实现Gabor滤波器

Gabor 函数表示 复数表示: 实数部分: 虚数部分: 其中: 代码中参数和Gabor函数参数对应关系 代码实现了Gabor滤波器的实数部分。代码中参数和Gabor函数实数部分参数对应如下: 对应 看上去是不是感觉很容易实现Gabor…

gabor特征 gabor滤波器

gabor特征 Gabor 特征是一种可以用来描述图像纹理信息的特征,Gabor 滤波器的频率和方向与人类的视觉系统类似,特别适合于纹理表示与判别。Gabor 特征主要依靠 Gabor 核在频率域上对信号进行加窗,从而能描述信号的局部频率信息。Gabor 核靠傅…

Log-Gabor Filters

原文转自:http://www.csse.uwa.edu.au/~pk/research/matlabfns/PhaseCongruency/Docs/convexpl.html What Are Log-Gabor Filters and Why Are They Good? Gabor filters are a traditional choice for obtaining localised frequency information. They offer the…

Gabor

出处:http://zhenyulu.cnblogs.com/articles/325968.html 二、Gabor函数 Gabor变换属于加窗傅立叶变换,Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。另外Gabor函数与人眼的生物作用相仿,所以经常用作纹理识别上,并取…

Gabor滤波器与特征提取

一、Gabor滤波器 Gabor滤波器,最主要使用优势体现在对物体纹理特征的提取上。 二维Gabor基函数能够很好地描述哺乳动物初级视觉系统中一对简单视觉神经元的感受野特性。随着小波变换和神经生理学的发展,Gabor变换逐渐演变成二维Gabor小波的形式。Gabor…