SVN基本操作 使用教程

news2024/11/24 4:05:00

01-SVN概述

1、为什么需要SVN版本控制软件

 

2、解决之道

SCM:软件配置管理
所谓的软件配置管理实际就是对软件源代码进行控制与管理
CVS:元老级产品
VSS:入门级产品
ClearCase:IBM公司提供技术支持,中坚级产品
SVN:主流产品

3、什么是SVN

  • SVN全称SubVersion
  • SVN是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数软件公司都使用SVN作为代码版本管理软件。
特点:操作简单入门简单支持跨平台Window/Linux/MacOS),支持版本回退功能(时间机器)

4、获取SVN软件

属于C/S结构软件(客户端与服务器端)
服务端软件:VisualSVN
网址:VisualSVN - Subversion-based version control for Windows
客户端软件:TortoiseSVN
网址:http://tortoisesvn.net/downloads

02-SVN服务端软件安装

1、SVN工作流程

 

2、服务器端软件安装(VisualSVN)

服务端软件存储于软件/服务器端

 

1)双击服务端软件安装

 

2)下一步,继续

 

3)下一步,继续

 

4)下一步,继续

 

5)下一步,继续,安全完成。

03-SVN服务端配置

1、创建一个项目

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

 

 创建版本仓库,基本语法:
svnadmin create Shop 文件夹路径(Shop仓库)

 

如果Shop仓库配置成功,那么Shop文件夹会显示以下目录结构

 

2、进行服务端监管

Apacheàhttp://localhost或(ip地址)访问到htdocs目录下的相关文件(监管)
SVNàsvn://localhost或(ip地址)访问到相关数据仓库(如Shop仓库)
基本语法:
svnserve  -d(后台运行)  -r(监管目录) 版本仓库目录
如下图所示:

 

通过以上指令,我们的svn://localhostip地址就可以直接指向Shop版本仓库
3、权限控制
默认情况下,SVN服务器是不允许匿名用户上传文件到服务器端的,所以必须更改系统相关配置文件。

 

更改第19行代码,去除前面的空格以及#号,更改其值为write(可读写)

 

04-SVN客户端软件安装与使用

1、获取软件安装包

 

2、确认操作系统位数

    32位操作系统
    64位操作系统
如何确认操作系统位数呢?可以在计算机图标上鼠标右键à属性,如下图所示:

 

通过以上分析可知,我们需要安装64位客户端软件。

3、客户端软件安装步骤

 双击软件运行(TortoiseSVN)

 

 同意许可协议,下一步:

 

 选择默认安装即可,下一步:

 

 下一步,Install,系统将会自动安装SVN软件,单击Finish即可。
注:在TortoiseSVN客户端软件安装完毕后,请一定要重启计算机,否则SVN图标是无法显示的。
如果我们鼠标右键出现如下两个图标,代表我们已经安装成功!

 

 安装汉化包
双击运行安装语言包,系统将会自动寻找之前TortoiseSVN软件安装目录,并进行自动安装,安装完成后可以进行如下设置:

 

 使用客户端软件连接SVN服务器Checkout检出)
首先在你的项目目录鼠标右键àTortoiseSVNà版本库浏览器à输出SVN服务器地址:

 

svn://SVN服务器地址à Shop项目(仓库)

 

显示隐藏文件

 

如果出现以上.svn隐藏文件夹,代表检出成功。

05-SVN使用详解(一)

1、回顾SVN三大指令

1)(Checkout)检出操作: 链接到SVN服务器端  更新服务端数据到本地
注意:Checkout只在第一次链接时操作一次,以后如果进行更新操作请使用Update(更新指令)
2)(Commit)提交操作: 提交本地数据到服务器端

 

 

 

以上工作大部分是由项目经理完成的,那么如果公司新来一个程序员(李四),他需要做哪些操作呢?
3)检出操作,效果如下:

 

4)Commit(提交),效果如下:

 

以上指令通常是在模块开发完毕后上传
5)项目经理(Update更新操作)

 

05-SVN使用详解(二)

1、图标集

1)常规图标

 

含义:当客户端文件与服务器端文件完全同步时,系统会显示以上图标
2)冲突图标

 

含义:当客户端提交的文件与服务器端数据有冲突,系统会显示以上图标
3)删除图标

 

含义:当服务端数据已删除,那么客户端该文件将显示以上图标
4)增加图标

 

含义:当我们编写文档已添加到提交队列,那么系统将自动显示以上图标
5)无版本控制图标

 

含义:当我们编写的文件没有添加到上传队列,系统将自动显示以上图标
6)修改图标

 

含义:当客户端文件有修改但未提交,此时将自动显示以上图标
7)只读图标

 

含义:当客户端文件以只读形式存在时,将自动显示以上图标
8)锁定图标

 

含义:当服务端数据已锁定,那么客户端文件将自动显示以上图标
9)忽略图标

 

含义:客户端文件已忽略,不需要进行提交上传,那么将自动显示以上图标

2、忽略功能

有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表
1)忽略某个指定的文件

 

2)忽略某类型文件

 

05-SVN使用详解(三)

1、什么是版本回退

有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。

 

2、版本回退功能

 在项目空白处鼠标右键,采用如下图所示操作

 

根据日志进行版本回退

 

根据日志信息选择要回退的状态,效果如下图所示

 

回退效果如下:

 

05-SVN使用详解(四)

1、什么是版本冲突

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

2、模拟版本冲突

 

模拟以上过程,出现如下错误提示:

 

3、解决之道

1)合理分配项目开发时间
旺财  上午开发
小强  下午开发
2)合理分配项目开发模块
旺财   购物车模块
小强   文章模块
3)通过SVN解决版本冲突问题
 更新服务器端数据到本地

 

index.php :整合后的index.php文件
index.php.mine :小强修改后的index.php文件
index.php.r6 :09:00更新时的index.php(起始状态)
index.php.r7 :旺财修改后的index.php文件
 删除除index.php以外的其他三个文件
 修改整合index.php冲突文件
 重新提交数据到SVN服务器端,即可解决版本冲突问题

4SVN如何切换账号

    
    ①鼠标右击选择TortoiseSVN--->Settings

 

②找到Saved Data选项

 

③然后选择下图红框里面的选项,单击clear

 

④弹出账号信息,勾选想要清除的账号点击ok即可清除

 

05-SVN使用详解(五)

    
svn提交过滤

1.打开settings

 

2.找到如下位置,然后再加上自己想过滤的文件比如:*.iml  target/

 

注意:要用一个空格隔开。
然后点击确定就可以了。

06-配置多仓库与权限控制

1、配置多仓库

在实际项目开发中,我们可能会同时开发多个项目,那么我们如何进行多项目监管呢?
通过svnserve进行仓库监管,但是监管指令只能监管某一个文件夹,而不能同时监管多个仓库。
答:可以通过监管WebApp总目录来达到监管所有仓库的目的
svnserve   -d(后台运行)   -r(监管目录)   WebApp(项目总目录)
 打开DOS窗口,输入如下指令

 

svn://localhostip地址来访问D:/svn/WebApp目录
如果需要访问Shop项目、Wechat项目
Shop项目:svn://localhost/Shop
Wechat项目:svn://localhost/Wechat

2、权限控制

如果要使用权限控制有一个前提:必须首先开启权限功能
在每一个仓库中都有一个conf文件夹,里面有三个文件
authz文件:授权文件
告诉哪些用户具有哪些权限
passwd文件:认证文件
标识当前svn系统中某个仓库具有哪些用户以及相应的密码
默认情况下,以上两个文件都是禁用的,如需要使用,首先要开启以上两个文件
svnserve.conf 配置文件
开启步骤如下:
 注释匿名用户的可读写权限,修改文件svnserve.conf

 

 开启认证文件与授权文件,修改文件svnserve.conf

 

 编写认证文件定义相关用户名与密码,修改passwd文件

 

 编写授权文件,修改authz文件

 

 测试

 

输入admin,admin888超级管理员

07-SVN服务的配置与管理

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环境(请使用超级管理员运行)
 输入一下指令

 

 查看系统服务
控制面板à管理工具à服务

 

双击运行,启动SVNService服务

 

如果运行成功代表开启SVN监管服务。

2、创建批处理文件

启动服务  net  start   服务名称
停止服务  net  stop    服务名称
删除服务  sc   delete  服务名称
以上功能在实际项目开发中经常使用,所以可以封装为.bat批处理文件,效果如下:

 

08-模拟真实的开发环境

1SVN工作流程

 

2、钩子程序

所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改。
默认情况下,钩子的子目录(版本仓库/hooks/)中包含各种版本库钩子模板。 

 

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

3、通过批处理指令编写钩子程序

 指令svn服务端工作目录
设置服务器端SVN路径
SET SVN="D:\svn\bin\svn.exe“
 指定Web服务器工作目录
设置服务器端项目运行目录
SET DIR="D:\server\apache\htdocs\shop"
 通过update指令实时更新数据到DIR目录中
SVN update %DIR%
④、具体使用步骤
第一步:复制post-commit.tmpl为post-commit.bat文件
第二步:填入相关批处理指令

 

第三步:在apache目录创建Shop项目并更新SVN服务端数据到本地
第四步:更新文件到SVN服务器端,可以在Shop目录实时获取到最新数据
第五步:可以通过虚拟主机形式直接访问更新文件

 

09-SVN扩展程序

1、什么是BAE云引擎

百度应用引擎(BAE)是百度推出的网络应用开发平台。基于BAE架构,使开发者不需要维护任何服务器,只需要简单的上传应用程序,就可以为用户提供服务。
开发者可以基于BAE平台进行PHPJavaPythonNodejs应用的开发、编译、发布、调试。

2、如何使用BAE云引擎

BAE地址:百度智能云-云智一体深入产业

 

进入部署列表(BAE管理平台)

 

1)添加部署

 

创建成功,如下图所示

 

单击管理控制台,如下图所示

 

2)SVN管理

 

通过SVN进行检出操作(之后可以向SVN服务器中添加或下载相关数据)
3)提交服务(Commit)
当我们的BAE服务器有数据的更新时,系统会自动弹出以下提示:

 

单击快捷发布

 

10-SVN客户端开启分支

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.coloradmin.cn/o/514423.html

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

相关文章

C++类与对象(三)

文章目录 一.初始化列表1.初始化列表的概念2.初始化列表的注意事项 二.explicit关键字1.单参数构造函数2.多参数构造函数 三.static成员1.static成员的概念2.static成员的特性 四.友元1.概念2.友元函数3.友元类 五.内部类1.概念2.内部类的性质 六.匿名对象七.拷贝对象时编译器的…

Docker安装MySQL主从配置

今天学习Docker安装MySQL主从配置 一、Master 1.1、拉取镜像 $docker pull mysql:8.0.25 1. 2、新建MySQL主服务器的容器实例,端口为3306 docker run -p 3306:3306 --name mysql-master \ -v /data/mysql/mysql-master/log:/var/log/mysql \ -v /data/mysql/mys…

WebSocket聊天功能小Demo

一、WebSocket简介 1.1 什么是WebSocket? WebSocket协议是基于TCP的一种网络协议,它实现了浏览器与服务器全双工(Full-duplex)通信。它允许服务端主动向客户端推送数据,这使得客户端和服务器之间的数据交换变得更加简…

模型微调的预处理

一.简历文本标注数据的准备 目标:把原始数据集转换为PaddleNLP支持的文本/文档抽取标注格式,为后续的模型微调做好准备。 工具:Label Studio 使用手册: applications/information_extraction/label_studio_text.md PaddlePad…

ai原创文章生成器-原创文章生成的软件

AI原创文章生成器——让你轻松批量生成高质量文章 随着内容创作的需求不断增加,人工撰写也难以满足快速高效的产出需求。在这种情况下,AI原创文章生成器应运而生,为人们创造了一种全新的自动化创作方式。下面我们就来了解一下这个神奇的工具…

无网络要求有网就能免费体验ChatGPT/GPT4

ChatGPT 是 OpenAI 公司开发的一款聊天机器人。它基于 OpenAI 的 GPT-3 语言模型,可以进行开域的自然语言聊天。主要特点如下: 开域聊天:ChatGPT可以聊任意话题,不需要预先定义话题范围或关键词,真正实现开放领域聊天。自然语言交互:ChatGPT可以理解并生成自然的语言表达,其对…

[答疑]事件和其影响的属性的对应是多样的

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 第五元素 2023-5-2 19:16 这题是不是缺少条件啊?“按钮默认isEnabled为true,被点击后,isEnabled变为false” 是通过什么渠道达到S4状态…

视频截取gif方法分享,利用gif制作工具在线制作动图

表情包作为聊天社交中调节氛围的工具,而动态的gif表情包更是深受大众的喜爱。那么,这种gif动态图片要怎么制作呢?其实,很简单不需要下载软件,小白也能轻松操作的。 一、什么工具能够制作gif动画呢? 使用G…

freeswitch两个DTMF转换接口的区别

概述 freeswitch支持三种模式的DTMF传输方式,分别时inband、INFO、2833。 在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中,需要将DTMF码做格式转换,通常是2833和inband之间的转换。 …

普乐蛙数字文旅动感5d电影设备5d动感电影体验馆

普乐蛙5d动感影院7d互动影院设备,它是通过视觉、听觉、触觉、嗅觉和味觉,在特定的环境中模拟形成一种特定的空间,营造出身临其境的效果。普乐蛙5d动感影院7d互动影院设备,它是根据人体工程学设计的座椅,让观众坐在座椅…

【iOS】—— 实现WebSocket发送消息(SocketRocket第三方库的使用和解析)

文章目录 WebSocketWebSocket特点 SocketRocket导入头文件设置代理SRWebSocket的初始化和建立连接SRWebSocketDelegate 代理方法实现加上简单UI实现两个用户之间简单通信浅看了一点点源码(理解的不深) 偶然之间了解到了利用WebSocket实现后端和前端的相互…

力扣刷题19天

106.从中序与后序遍历序列构造二又树(1、在中序、前序和后序,每轮取得时候数量都一样. 2、必须要有中序才能推测出来) 这道题下面是前提: 如果没有这个前提,会出现下面情况(前序遍历会变成新的树): 运行代码: class S…

MySQL简介与基本的select语句

1.SQL的分类 DDL(Data Definition Languages、数据定义语言),这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据库表的结构. 主要的语句关键字包括 CREATE、DROP、ALTER等。 DML(Data Manipulation Lan…

CSS3 的其他特性(了解)

目录 1.CSS3滤镜filter: 2.CSS3 calc函数 3.CSS3 过度(重点) 4.进度条案例 5.侠义的HTML5 CSS3 1.CSS3滤镜filter: filter CSS属性及那个模糊或颜色偏移等图形效果应用于元素。 filter: 函数(); 例如:…

端子排电压继电器 动作时间短 35mm卡槽安装 JY-7GA/2 80-320VAC

JY-7GA/2端子排电压继电器品牌:JOSEF约瑟名称:端子排电压继电器型号:JY-7GA/2电压整定范围:60200VAC/90300VDC功率消耗:<3W触点容量:250V5A返回系数:过压0.920.96/欠压1.041.08 系列型号: JY-7GA/DK/220端子排电压继电器; JY-7GB/DK/220端…

sqoop将hive中的数据导入MySQL不能正常显示中文——已解决

问题: 原因: 结果查看 问题: 在做练习利用sqoop工具将hive中的表导入到MySQL之后,在MySQL查看中文部分不能正常显示 输入sqoop执行语句 sqoop export -connect "jdbc:mysql://HadoopMaster:3306/hive_to_mysql?useUnicode…

要不要提前去实习?

大家好,我是帅地。 秋招结束,很多人在纠结要不要提前去公司实习,最近也有一些帅友问了这个问题 说说我去年在腾讯实习的经历给你做个参考吧。 入职前的学习 20年初那会,还是蛮激动,之前我从来没有去打过工&#xff…

如何用Xcode安装ipa

Xcode安装ipa iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!​ 下面进行步骤介绍!​ 利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。​ 非常的方便,没有…

08-01 分布式系统理论

分布式一致性和CAP理论 C(一致性):在分布式环境中,一致性是指数据在多个副本之间能否保持一致的特性A(可用性):系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是…

butter滤波器

文章目录 什么是巴特沃斯滤波器?滤波器的阶数的含义matlab中的butterscipy.signal butter 中有哪些参数,各参数分别是什么含义? 本节围绕以下问题展开 butter 是什么?滤波器的阶数是什么意思?matlab中的butter参数含义…